2012-07-03 48 views
2

我做出的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位的标志,但它似乎并没有对任何事情有任何影响。

我只是想知道,如果有人知道的下一件事尝试,因为我完全被这个难住了。

回答

0

通过您要使用mkbundle2其做同样的任务,它的声音,但对于单2.x的运行时间。另外需要注意的可能是运行时依赖(即:调用LoadLibrary和这些函数的代码),因为这些可能不会被mkbundles检测到。

相关问题