我想将我的c#应用程序分发到linux集群上的每台计算机,以便我可以运行它而无需在每台计算机上安装mono.
我花了好几个小时试图让mkbundle工作,但它没有正确捆绑(我无法在另一台没有安装单声道的机器上运行该应用程序).
做这个的最好方式是什么?
有趣的是,我安装了.NET 4.0,以及所有GTK#.我想也许我以错误的顺序安装它或者荒谬的东西,所以我卸载并重新安装了所有东西.我甚至尝试安装普通的旧单声道,然后安装monodevelop,但我仍然得到同样的错误.
我目前正在尝试让我的C#程序在Linux上运行.在我的Linux机器上使用mono,程序运行正常.所以我使用了mkbundle,所有这些都是正确编译的.但是当我尝试在任何其他Linux机器上运行捆绑的程序时,我收到此错误:
Unhandled Exception: System.TypeInitializationException: An exception was thrown by the
type initializer for System.Windows.Forms.XplatUI --->
System.TypeInitializationException: An exception was thrown by the type initializer for
System.Drawing.GDIPlus ---> System.DllNotFoundException: libgdiplus.so.0
Run Code Online (Sandbox Code Playgroud)
这是我使用的mkbundle命令:
mkbundle --static program.exe --deps -o a.out
Run Code Online (Sandbox Code Playgroud)
我也尝试过使用mkbundle2而没有运气.
我想也许有一种方法可以专门包含mkbundle的库(比如告诉在哪里找到libgdiplus).它应该在我使用mkbundle时链接,但我想这不是因为当我在任何其他Linux机器上运行我的程序(不运行单声道)时,我收到此错误.
两台机器都运行Ubuntu 10.10 AMD64.