使用Linux下的Mono编译并执行现有的C#

时间:2015-11-02 08:21:16

标签: c# linux mono

我正在尝试两个星期的现有C#项目(使用.NET3.5)并创建了unter VS 2008以在Linux上传输它。 该程序需要在Linux上运行,因为我的大学只有一个Linux集群,我可以用大数据库来解决我的问题。 首先,我可以用mono编译我的项目,没有任何错误。但如果我想用mono program.exe运行它,我会收到错误:

  

“/ home / lib / optek>单声道Optek.exe缺失方法   程序集中的System.Type :: op_Inequality(Type,Type)   /usr/lib/mono/2.0/mscorlib.dll,在程序集中引用   /rwthfs/rz/cluster/home/lib/optek/System.Configuration.dll方法没有   发现:'System.Type.op_Inequality'“

我还尝试使用mono --runtime=v4.0 program.exe

运行它
  

“/ home / lib / optek> mono --runtime = v4.0 Optek.exe缺少方法   程序集中的System.Runtime.InteropServices.Marshal :: SizeOf< [1]>(!! 0)   /usr/lib/mono/4.0/mscorlib.dll,在程序集中引用   /rwthfs/rz/cluster/home/lib/optek/System.Windows.Forms.dll   类型初始化程序抛出异常   System.Windows.Forms.WindowsFormsSynchronizationContext“

第二个错误是在应该打开GUI的部分,所以我猜我使用的System.Windows.Forms.dll存在问题。我使用的所有其他库,我在mono lib文件夹下的集群中找到。但我没有发现没有System.Windows.Forms.dll。所以现在我使用(来自Monodevelop的Windows System.Windows.Forms.dll)。这个windows monodevlop System.Windows.Forms.dll是由一个带有GUI的小型hello world程序测试的,它在那里工作。

有没有人可以尝试使用Linux版本的System.Windows.Forms.dll? 我还尝试使用不同的命令(mcsgmcsdmcs)进行编译。这些命令是否链接到特殊的单声道文件夹,以便编译器使用其他.dll而不是我将使用?

具体针对mscorlib.dll

您如何帮助我解决我的问题的其他建议?如果您对我的问题有任何其他问题,请询问;-) 感谢

0 个答案:

没有答案