假设我有2台机器,一台带有MS 4.0的.NET机器,另一台带有Mono 2.10.1的Linux机器 现在我在相应的机器上创建一个命令行应用程序,它将使用以下命令输出已安装的框架版本:
Console.WriteLine(Environment.Version);
问题1
我的假设是否正确,应显示以下内容:
Windows:4.0.30319.1
Linux:2.10.1(或类似的东西??)
问题2
假设我们在Windows机器上安装了mono和ms.net,有没有办法指定exe必须在windows中的单声道框架上运行? (也许是配置文件?)
问题3
如果我在linux机器上编译一个(简单的)单声道应用程序,那么编译的exe会在只安装了ms.net的Windows机器上运行吗?
答案 0 :(得分:5)
ad问题1:您应该期待Runtime的版本,而不是Mono的版本
答案 1 :(得分:4)
<强>更新强>
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 tool
<强> test.cs中强>
using System;
namespace X
{
class Y
{
public static int Main(string[] args)
{
Console.WriteLine(Environment.Version);
return 0;
}
}
}
答案 2 :(得分:0)
问题2:您可以在Windows环境中为Xamarin工作室默认运行时为单声道。
你可以从这里单声道运行时间:
Xamarin Studio =&gt;工具=&gt;选项=&gt; Projects =&gt; .NET Runtimes =&gt;添加(在此处添加单声道)
并将mono标记为默认运行时。