我创建了一个名为“Image Processing”的Windows窗体(C#)应用程序。它使用了许多外部dll,所以我决定使用ILMerge将它们合并到一个exe文件中并且它有效。但今天我已经本地化了我的应用程序。在构建之后,我在Debug文件夹中有3个新文件夹:“en-US”,“ru-RU”,“uk-UA”,其中一个dll具有相同的名称“ImageProcessing.resources.dll”。所以我将它们全部包含在ILMerge命令中:
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 :(得分:0)
答案很简单。 ILMerge不适用于这种情况,因为.NET Framework依赖于文件夹结构来确定要使用的资源文件。
以这种方式组合程序集是没有意义的,并且某些第三方程序集供应商的最终用户许可证不允许您将其产品与您自己的程序集合并。