单声道运行时间的限制

时间:2009-06-28 06:33:44

标签: .net mono

我的问题类似于this onethis one,但存在细微差别。所以这就是我在这里问的原因。

我在Windows上运行了一个闪亮的.Net 3.5 Windows服务(带有NHibernate,LINQ,lambda表达式)等。现在我打算将我的应用程序移植到Linux,所以我在想Mono。

我可以在Windows中编译我的.net应用程序,并将其复制到安装了.Net(单声道版本)的Linux机器上,并期望它能够顺利运行吗?如果没有,我有什么办法吗?

欢迎任何答案或指示。

3 个答案:

答案 0 :(得分:8)

它会起作用吗?你真的来测试它。我最近刚刚努力使协议缓冲区在Mono上运行。到目前为止,我的执行时间很少;编译器对我来说更像一个问题。但是,我不得不暂时禁用其中一个单元测试(使用模拟)因为它使Mono 2.4 VM本身发生了爆炸。我还没有调查过为什么,但这种事情基本上无法预测。

任何使用CLR“深层”方面的东西 - 比如表达式树和动态方法 - 都可能比简单的库IMO有更多的问题。

现在,你说它是一个Windows服务 - 显然Linux没有与Windows完全相同的服务,所以你需要弄清楚你想要它运行的方式。我开始时将它作为一个简单的控制台应用程序运行,如果我是你...一旦它全部工作,你可以考虑将它与其他“服务”控制器等集成 - 如果你发现你需要。

当然使用xbuild无法提供从构建Windows到构建Linux的无缝迁移路径的情况......但是,它受到了很多关注最近,所以值得再次尝试......

答案 1 :(得分:7)

首先使用MoMA tool

  

单声道迁移分析仪(MoMA)   工具可帮助您识别可能出现的问题   移植你的.Net时有   应用于Mono。它有助于精确定位   特定于平台的调用(P / Invoke)和   尚未支持的区域   Mono项目。 MoMA可以提供帮助   显示潜在问题,有很多   无法涵盖的复杂因素   通过一个简单的工具。现代艺术博物馆可能没有   指出会导致的区域   问题,并可能指出领域   这实际上不是一个问题

从个人角度来看:所有C#3.0功能都得到了很好的支持,我对LINQ没有任何问题(To Objects,不了解LINQ to SQL或XML),NHiberinate也运行良好(虽然我没有结束)使用in)

答案 2 :(得分:2)

运行时应该没问题但您可以运行Mono Migration Analyzer