0

私の場合:app.exeとそのためのいくつかのdll(a.dll、b.dll、c.dllなど)があります(これらは、多くのプロジェクトで構成される単一のVSソリューションからのものです)。すべてのdllを1つにマージ(ilmerge)したいので、app.exe+x.dllにします。

ここで、問題があります。アプリケーションはすべてのdllを想定しているため、1つのファイルx.dllだけを配置すると実行されません。では、1つのx.dllを使用するようにアプリケーションを「リダイレクト」する方法-それはまったく可能ですか?

私が知っている1つの解決策は、Visual Studioのプロジェクトへのすべての参照を削除し、代わりにマージされたdllへの参照を追加することです。ただし、これにより、ソリューションの再コンパイル中に依存関係の連鎖が無効になります。

ところで。これはwpfアプリであり、ilmergeが処理できないため、exeとdllをマージできません。

4

2 に答える 2

3

3つのDLLを作成する代わりに、3つの.NetModuleを作成して1つのDLLに変換することもできます。.NetModulesの作成は現在MSBuildシステムに統合されていないため、実際のCSPROJファイルを編集する必要がありますが、編集は可能です。

.NetModuleは、C /C++の一種の静的ライブラリと考えることができます。もちろん違いはありますが、全体的なコンセプトは似ています。これらは、複数の.NET言語を含む単一のDLLを作成しようとする場合に最も一般的ですが、同様に機能します。ここでそれらをチェックしてください

于 2010-08-18T07:11:41.477 に答える
0

このブログを読んでいただければお勧めです。WPFアセンブリをマージする必要がある場合は、ILMergeの代わりになります。 http://blogs.msdn.com/b/microsoft_press/archive/2010/02/03/jeffrey-richter-excerpt-2-from-clr-via-c-third-edition.aspx

于 2011-05-20T09:49:22.910 に答える