2011-01-29 32 views
1

我創建了一個名爲「圖像處理」的Windows窗體(C#)應用程序。它使用了許多外部DLL,因此我決定使用ILMerge將它們全部合併到一個exe文件中,並且工作正常。但是今天我已經定位了我的應用程序建立後,我有3個新的文件夾在Debug文件夾中:「en-US」,「ru-RU」,「uk-UA」與一個dll具有相同名稱的「ImageProcessing.resources.dll」。所以我將它們全部包含在ILMerge命令中:ILMerging與幾個本地化的Windows窗體應用程序問題

ILMerge.exe /t:winexe /out:ImageProcessingRelease.exe ImageProcessing.exe AForge.dll AForge.Imaging.dll AForge.Math.dll DevExpress.Data.v10.2.dll DevExpress.Utils.v10.2.dll DevExpress.XtraBars.v10.2.dll DevExpress.XtraEditors.v10.2.dll FreeImageNET.dll uk-UA\ImageProcessing.resources.dll ru-RU\ImageProcessing.resources.dll en-US\ImageProcessing.resources.dll 

我的程序在設置中存儲語言區域設置。合併後,我無法更改語言,但設置正在改變。

我不知道還有什麼我可以在這裏包括更多的細節,請告訴我什麼。

回答

0

答案很簡單。 ILMerge在這種情況下不適用,因爲.NET Framework依賴於文件夾結構來確定使用哪個資源文件。

以這種方式組合裝配是沒有意義的,而某些第三方裝配供應商的最終用戶許可不允許您將其產品與自己的裝配合並。