.Net frameWork不是设计成交叉平台 .
取决于你是否希望包括说Linux . 如果你问的是.NET最初的设计目标是Linux,那么,没有 . 但是,.NET Compact Framework允许.NET代码运行Xbox 360和Windows Phone .
现在有.NET Core,一个免费的开源框架,专为跨平台而设计,特别是Windows,Mac和Linux .
.Net frameWork目标是以统一的方式设计程序,它们必须全部运行并且是虚拟机 .
是 . 正确的术语是执行引擎而不是VM,尽管它们都在同一个类中 . 不要将EE视为类似于vmWare的东西,其中CPU指令是模拟的.2686579_ . .NET与Java类似,是一种p代码形式,但.NET程序集与当前CPU JIT,以提高性能并在CPU上本机运行 . [1]
Mono是.Net frameWork的开源版本,旨在实现交叉平台 . 使用它构建的程序可以在有单声道虚拟机的任何地方运行 .
是 . .NET Core具有相同的声明 . [4]
使用mono frameWork构建的程序无法运行,或与.Net虚拟机不完全兼容 .
跨越它的Mono Framework的许多版本不是等效.NET Framework的1:1 .
例如
Mono在.NET 3.0中不支持WPF [2]
Mono在.NET 3.0中不支持WWF [2]
Mono不支持.NET 4.0中的CodeContracts [2]
Unity仅在编辑,构建和运行游戏时使用Mono frameWork .
不正确 . Unity还使用Unity Script编写游戏 .
但是,无论您的语言选择如何,运行时都会有很大差异 . 当通过Unity Web Player定位网络浏览器时,没有.NET / Mono EE . 该平台是Unity Web Player . 从这个意义上讲,目标平台上不需要.NET / Mono . [3]
使用Unity构建的游戏嵌入了单声道框架和/或单声道虚拟机 .
不正确,见上文
我不需要.Net frameWork来构建或运行Unity游戏 .
正确
我在Unity中编写的C#脚本由构建时间之前和之后的单声道虚拟机运行 . 所有Unity引擎公共代码库都是c包装的,实际上不是C#,因此它们在c端引擎上运行 .
不正确,您选择用于编写Unity游戏的语言与运行时是否存在.NET / Mono EE之间没有关联 .
单帧工具和库在游戏中使用单声道虚拟机运行 .
要看 .
在运行Unity Editor的桌面上? - 是的
部署在智能设备/浏览器上运行? - 不
使用.Net frameWork构建的Dll与mono不完全兼容 .
不正确 . Mono可能与同等的.NET Framework完全兼容,也可能不完全兼容 . [2]
另见