假设我有两台机器,一台带有.NET 4.0的MS Windows,另一台带有Mono 2.10.1的Linux机器
现在我在各自的机器上创build一个命令行应用程序,它将使用以下命令输出安装的框架版本:
Console.WriteLine(Environment.Version);
问题1
我的假设是正确的,应显示以下内容:
Windows:4.0.30319.1
Linux:2.10.1(或类似的东西??)
问题2
假设我们在Windows机器上安装了mono和ms.net,有没有办法指定一个exe文件必须在windows的mono框架上运行? (也许是一个configuration文件?)
问题3
如果我在Linux机器上编译(简单)单声道应用程序,将编译的exe工作在仅安装有ms.net的Windows机器上?
更新
。
mono.2.6.7 $ ./test.exe 2.0.50727.1433 $ source custom/MONO/devenv.sh mono.2.11 $ dmcs test.cs mono.2.11 $ ./test.exe WARNING: The runtime version supported by this application is unavailable. Using default runtime: v1.1.4322 1.1.4322.2032 mono.2.11 $ mono ./test.exe 4.0.30319.1 mono.2.11 $
问题2
你可以创建一个批处理文件来调用mono.exe myapplication
。 查看%PROGRAMFILES%\ Mono 2.10 \ bin以获取大量示例
问题3是
为了兼容性检查其他方式(检查实现存根,缺少P / Invoke功能等),有MoMa工具
test.cs中
using System; namespace X { class Y { public static int Main(string[] args) { Console.WriteLine(Environment.Version); return 0; } } }
广告问题1:您应该期望运行时版本,而不是单声道版本
对于问题2:您可以在Xamarin studio的windows环境中将运行时默认为单声道。
你可以从这里单声道运行时间:
Xamarin Studio => Tools => Options => Projects => .NET Runtimes => Add(在这里添加mono)
并将mono标记为默认运行时。