我做出的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位的標誌,但它似乎並沒有對任何事情有任何影響。
我只是想知道,如果有人知道的下一件事嘗試,因爲我完全被這個難住了。