.NET / Mono框架定位

时间:2011-04-07 09:59:35

标签: .net windows linux frameworks mono

假设我有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机器上运行吗?

3 个答案:

答案 0 :(得分:5)

ad问题1:您应该期待Runtime的版本,而不是Mono的版本

答案 1 :(得分:4)

<强>更新

  • 问题1(test.cs如下[1]),在linux上测试:

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标记为默认运行时。