1

「画像処理」と呼ばれるWindowsフォーム(C#)アプリケーションを作成しました。多くの外部dllを使用するため、ILMergeを使用してそれらすべてを1つのexeファイルにマージすることにしました。しかし、今日はアプリケーションをローカライズしました。ビルド後、Debugフォルダーに「en-US」、「ru-RU」、「uk-UA」の3つの新しいフォルダーがあり、「ImageProcessing.resources.dll」という名前のdllが1つあります。そこで、それらすべてを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

私のプログラムは言語ロケールを設定に保存します。マージ後、言語を変更できませんが、設定が変更されています。

詳細については、他に何を含めることができるかわかりませんので、教えてください。

4

1 に答える 1

0

答えは簡単です。この場合、ILMergeは適切ではありません。.NETFrameworkは、使用するリソースファイルを決定するためにフォルダー構造に依存しているためです。

このようにアセンブリを組み合わせるのは無意味であり、一部のサードパーティのアセンブリベンダーのエンドユーザーライセンスでは、自社の製品を独自のアセンブリとマージすることは許可されていません。

于 2011-02-06T11:03:34.427 に答える