我可以在Mac上编译.NET C#代码吗?


22

我需要一种将一小段.NET C#代码交叉编译到dll的方法,然后该dll将运行客户端的Windows环境。

我在iMac上运行OS X 10.9.2。

谁知道有什么工具可以做到这一点?

如果我可以找到一种交叉编译方法而无需大量安装Microsoft工具,那么我宁愿不安装Parallels和Windows。

Answers:


21

查看Mono项目。这可能是您要寻找的。

http://www.mono-project.com/Mono:OSX

MonoDevelop是主要用于C#和其他.NET语言的跨平台IDE。MonoDevelop使开发人员能够在Linux,Windows和Mac OSX上快速编写桌面和ASP.NET Web应用程序。MonoDevelop使开发人员可以轻松地将使用Visual Studio创建的.NET应用程序移植到Linux和Mac OSX,并为所有平台维护单个代码库。


monodevelop.com MonoDevelop是主要用于C#和其他.NET语言的跨平台IDE。MonoDevelop使开发人员能够在Linux,Windows和Mac OSX上快速编写桌面和ASP.NET Web应用程序。MonoDevelop使开发人员可以轻松地将使用Visual Studio创建的.NET应用程序移植到Linux和Mac OSX,并为所有平台维护单个代码库。-如果您无法使用MonoDevelop正确编译代码,那么他们可能别无选择,只能运行VM。
level42 2014年

谢谢,我一直在研究Mono,但是虽然它应该可以工作,但是我没有找到明确的“如何”安装或使用它的方法。
Jagra 2014年

1
@Jagra这里有一些教学视频:youtube.com/results?
search_query=monodevelop+install+mac

1
只是为了消除任何疑问:是的,如果您不使用任何特定的Mono库(例如Mono.Addin或Mono.Simd),则如果在Mono上编译DLL,它将在Windows上运行而无需进行任何修改。这也是双向的-如果您不使用任何特定的Microsoft / Windows库(例如WPF,Workflow Foundation,COM +等),则在Visual Studio上编译的DLL / EXE将在Mono上未经修改地运行。–
NothingsImpossible

1
@Jagra:一旦从go-mono.com/mono-downloads/download.html安装了Mono(如果需要,还可以安装MonoDevelop),就非常容易使用。即使没有MonoDevelop,您也应该能够使用Visual Studio直接编译大多数.sln项目xbuild
Jwosty 2014年

8

如果您使用的是Mac,则可以像这样编译C#:

编译:mcs fileName.cs
运行:mono fileName.exe

如果您的Mac上未安装Mono,则可以将其搜索并安装,然后就可以使用了。您不需要Windows即可执行此操作。


5

您可以使用homebrew安装它:

brew install mono

然后,您可以将其用于:

mcs hello.cs
mono hello.exe



1

我可以在Mac上编译.NET C#代码吗?

您可以编译C#代码。

如果我可以找到一种交叉编译方法而无需大量安装Microsoft工具,那么我宁愿不安装Parallels和Windows。

Mono 与.NET实现不具有100%的兼容性

公共语言基础结构(CLI)是用于执行托管代码的框架。CLI由几个部分组成,包括虚拟执行系统(VES)。.NET的VES是公共语言运行库。Mono具有自己的独立VES实现。

换句话说,至少不要期望运行仅在* nix / OSX环境中测试过的代码而无需在Windows环境中对其进行测试而运行

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.