如何为我的C#项目支持linux

时间:2009-12-20 18:47:12

标签: c# c++ interop mono

我有一个项目是一个开源应用程序,用于特定类型的科学计算,它使用c ++作为后端,C#作为前端。我在c ++部分没有做任何特定于Windows的事情,所以我希望在那里有一个相对较小的学习曲线。我有几个具体的问题,我将非常感谢有关此类过渡的任何建议。请记住,我对Linux一无所知,但我愿意学习。

  1. 是否有类似于Visual Studio的IDE?理想情况下,我想以类似于现在的方式设置它,使用2个C#解决方案和几个c ++ dll。我真的不想单独使用文本编辑器并使用命令行链接
  2. 是否有一些工具可以让我了解过渡过程中可能出现的问题?
  3. 是否有将我的Visual Studio选项翻译为gcc选项?
  4. 我知道我不需要在技术上支持Linux,因为我的领域几乎每个人都使用Windows,或者可以轻松访问Windows机器,但我认为从技术角度来看这可能很有趣。

3 个答案:

答案 0 :(得分:8)

在Linux上有一个可用于C#的IDE - 它是Mono Develop。当前版本将打开visual studio项目和解决方案文件,因此需要零知识才能迁移到它。

它使用Mono project,它是Linux的C#实现。

他们已经创建了一个迁移工具(MoMa),因此您可以测试您的C#代码并查看它是否可以在Linux上运行 - 它将为您提供有关不可移植的内容和原因的提示和解释。< / p>

我知道这不是您要问的c ++路线,但它可能是让您的应用程序平台独立的最简单,最快捷的方法。

答案 1 :(得分:2)

nr 1的答案是:MonoDevelop。其中还附带Mono,这是与平台无关的.NET版本。当你进行这种转换时,它是必须使用的。它也可以在Windows上运行,这使得学习曲线不那么陡峭。

nr 2的答案是:我不知道......,但运行为Mono编译的程序应该可以让您对代码中的平台特定问题有所了解。

nr 3的答案是:尝试作为一个具体问题,这将给予这个相当复杂的问题正确的关注和支持。

nr X的答案是:使用自动构建(NAnt或类似)自动为多个目标平台构建代码。但是,您的.NET代码可能在任何平台上都未经修改运行(理想情况下应该是这样),只有您的C ++部分需要特别注意。

答案 2 :(得分:1)

其他人已经提到过MonoDevelope。但是还有MoMA可以扫描.NET应用程序并查找像pInvoke这样不可移植的命令。