我下载了一些包含使用Windows窗体的C#代码的源代码。是否可以在Linux环境(Ubuntu 12.04)下编译代码并运行它?
我已经尝试使用 mcs 成功编译一些C#源代码,并使用 mono 运行生成的 exe 文件。
可以下载源代码here。如果可能,请描述如何编译和运行第2章/ OpeningDocument 解决方案。
$ mcs Program.cs
Program.cs(3,14): error CS0234: The type or namespace name `Windows' does not exist in the namespace `System'. Are you missing an assembly reference?
Compilation failed: 1 error(s), 0 warnings
修改
$ gmcs -pkg:dotnet Program.cs
Program.cs(17,33): error CS0246: The type or namespace name `Form1' could not be found. Are you missing a using directive or an assembly reference?
Program.cs(17,25): error CS1502: The best overloaded method match for `System.Windows.Forms.Application.Run(System.Windows.Forms.Form)' has some invalid arguments
/usr/lib/mono/gac/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll (Location of the symbol related to previous error)
Program.cs(17,25): error CS1503: Argument `#1' cannot convert `object' expression to type `System.Windows.Forms.Form'
Compilation failed: 3 error(s), 0 warnings
答案 0 :(得分:4)
如果您没有使用最新版本的Mono,这应该可行:
gmcs -pkg:dotnet *.cs
最新版本的mono使用mcs
代替gmcs
。在之前的版本中,mcs
的目标是.NET 1.1。
答案 1 :(得分:2)
您可能希望针对单色迁移分析器运行代码,以查看失败或不受支持的内容。您可以在此处找到该工具:http://www.mono-project.com/MoMA。 注意要使该工具正常工作,您需要访问Windows计算机。
您还可以在http://www.mono-project.com/Compatibility查看与各种.Net功能的当前单声道兼容性。
专门针对Windows表单,请参阅:http://www.mono-project.com/WinForms
希望这会有所帮助。