2012-07-03 46 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檢測到。

相關問題