我正在尝试两个星期的现有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?
我还尝试使用不同的命令(mcs
,gmcs
,dmcs
)进行编译。这些命令是否链接到特殊的单声道文件夹,以便编译器使用其他.dll而不是我将使用?
具体针对mscorlib.dll
?
您如何帮助我解决我的问题的其他建议?如果您对我的问题有任何其他问题,请询问;-) 感谢