たとえば、DLL でBouncy Castleを使用したいとします。デプロイを簡単にしたいので、ILMerge を使用して結合MyDll.dll
しBouncyCastle.Crypto.dll
、生成しMyDllMerged.dll
ます。ILMerge でフラグを使用して/internalize
、クライアントが私の Bouncy Castle を使用しないようにします。
私の消費者EndUser.exe
が Bouncy Castle も使用している場合、" は "Org.BouncyCastle...TypeFoo
で既に定義されていることがわかりますMyDllMerged.dll
。したがって、彼は運命にあり、そのライブラリを自分で使用することはできません。
それを内部化することに加えて、ILMergeにアセンブリ内のすべての名前空間の名前を変更するように指示する方法はありますか? または、この問題を解決する他の方法はありますか? ( 「マージ済み」バージョンと「未マージ」バージョンを別々に配布する必要はありません。)