我認爲mkbundle2的目的是允許沒有安裝mono的機器運行單聲道應用程序。但它似乎並沒有打包libmono.so。我不確定是否應該這樣做,但是目標機器抱怨說當我運行該軟件包時它找不到libmono.so.0。它爲什麼要查找該文件?如果需要的話,爲什麼它只能在捆綁中找到任何地方?如果它應該在捆綁中,爲什麼沒有mkbundle2呢?我正在使用「--deps」選項來包含所有依賴關係。我錯過了什麼嗎?用mkbundle2打包後,目標機器抱怨libmono.so。爲什麼?
添加--static選項後,我得到的目標計算機上這樣的結果:
未處理的異常:System.TypeInitializationException:一個例外是由類型初始化爲System.Windows.Forms.XplatUI拋出 - System.Windows.Forms.XplatUI..cctor()[0x00000] in:0
(System.Windows.Forms.XplatUI:uname(intptr) )使用export MONO_LOG_LEVEL = debug顯示更多信息:
Mono-INFO:DllImport試圖加載:'libc'。 Mono-INFO:DllImport加載位置:'libc.so'。 Mono-INFO:DllImport錯誤加載庫:'/usr/lib64/libc.so:invalid ELF header'。 Mono-INFO:DllImport加載庫:'./libc.so'。 Mono-INFO:DllImport錯誤加載庫'./libc.so:無法打開共享對象文件:沒有這樣的文件或目錄'。 Mono-INFO:DllImport加載:'libc'。 Mono-INFO:DllImport錯誤加載庫'libc:無法打開共享對象文件:沒有這樣的文件或目錄'。
這是否意味着我試圖在硬件不兼容的機器上運行?這兩臺計算機都是SUSE Linux Enterprise Server 11(x86_64)。
Leniel的+1。該文檔明確指出:要自動包含所有引用的依賴項,請使用「--deps」命令行選項。 – karlphillip 2010-07-25 05:26:17
這是我失蹤的 - 靜態選項。謝謝。 – Fantius 2010-07-26 16:19:28
嗯,看來還是有問題。我編輯了我的問題。 – Fantius 2010-07-26 16:53:58