我做出的MonoDevelop为大专分配的C#GTK#应用程序才发现,它不会在大学的计算机上运行,因为我们没有管理员权限安装GTK#或Mono库。经过一番研究,我发现了在Cygwin中使用mkbundle将所需的DLL与可执行文件捆绑在一起的技术。我跟着这些指示:捆绑GTK#应用程序将无法在新的Win7安装运行
http://www.joebest.org/2011/09/mono-and-mkbundle-on-windows.html
既然不能上大学计算机测试,而我在家的时候,我在虚拟机上用一个完全干净的测试安装Win 7专业版64位位。我的开发机器运行相同的操作系统,但是我的开发机器上没有任何重点测试,因为它已经拥有了它所需的所有库,并且我没有遇到任何错误。
我可以在那里创建捆绑可执行就好了,没有麻烦。捆绑的可执行文件在我的开发机器上运行良好。当我尝试在Clean 7安装时运行它时,没有任何反应。没有窗口出现;没有错误信息;没有。我只知道它正在运行,因为在双击可执行文件时,我可以在任务管理器的“进程”选项卡中看到它的名称一两分钟。
为了进行比较,如果我尝试运行非捆绑的应用程序,它提供了一个错误信息,说我需要安装.NET 4运行。如果我安装.NET 4运行时(我知道大学计算机都安装了.NET 4),然后应用程序崩溃与此错误:
Problem signature:
Problem Event Name: CLR20r3
Problem Signature 01: keycommandeditor.exe
Problem Signature 02: 1.0.4560.18753
Problem Signature 03: 4fe8f352
Problem Signature 04: glib-sharp
Problem Signature 05: 2.12.0.0
Problem Signature 06: 4e383483
Problem Signature 07: 2bc
Problem Signature 08: 0
Problem Signature 09: System.DllNotFoundException
OS Version: 6.1.7600.2.0.0.256.48
Locale ID: 1033
Additional Information 1: 0bff
Additional Information 2: 0bff8d176610735333c3986b545525d3
Additional Information 3: 9af1
Additional Information 4: 9af19ba95df508dd9c076f2be86ba847
我添加了所有出现了在mkbundle输出到的DLL应用程序的文件夹。如果我从文件夹中删除巧舌如簧,sharp.dll,误差变:
Problem signature:
Problem Event Name: APPCRASH
Application Name: KeyCommandEditor.exe
Application Version: 1.0.4560.18753
Application Timestamp: 4fe8f352
Fault Module Name: KERNELBASE.dll
Fault Module Version: 6.1.7600.16385
Fault Module Timestamp: 4a5bdbdf
Exception Code: e0434352
Exception Offset: 0000b727
OS Version: 6.1.7600.2.0.0.256.48
Locale ID: 1033
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789
我也试图改变使用CorFlags.exe 32位的标志,但它似乎并没有对任何事情有任何影响。
我只是想知道,如果有人知道的下一件事尝试,因为我完全被这个难住了。