4

C# でライブラリ TRSetup.dll を作成しています。プロジェクトには、サードパーティの dll が含まれています。(例: GalaSoft.MvvmLight.Extras.WPF4.dll、GalaSoft.MvvmLight.WPF4.dll、RemObjects.Hydra.dll)

すべての dll を結合して、単一の dll を作成する必要があります。

dll を結合するために ilMerge を使用しています。私が使用している次のコマンド、

    ilMerge /out:MergedSetup.dll /targetplatform:v4,"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client" 
/lib: TRSetup.dll  Galasoft.MvvmLight.Extras.WPF4.dll Galasoft.MvvmLight.WPF4.dll RemObject.Hydra.dll

MergedSetup.dll という名前の dll を作成できますが、実行時にクラッシュします。これらのdllをどのようにマージしますか。

前もって感謝します。

4

1 に答える 1

5

これは、WPF (および NHibernate、およびアセンブリを名前で参照する他の多くのもの) と ILMerge の問題を知っています。簡単に言うと、ILMerge の後、そのようなアセンブリはなくなり、それらはすべてメイン アセンブリに挿入されます。

マージする代わりに埋め込みを試してください: LibZ ( http://libz.codeplex.com/ ) または Costura.Fody ( https://github.com/Fody/Costura/ )

免責事項: 私は LibZ の作成者です。

乾杯、

于 2013-05-01T10:27:24.580 に答える