1

次の構造を持つ VS ソリューション (.sln) があります。

  • プロジェクトA
  • プロジェクト B (プロジェクト A への参照と、NHibernate、StructureMap などのサードパーティ アセンブリへの参照が含まれます)

ILMerge を使用して、サード パーティのアセンブリを ProjectB.dll にまとめたいと考えています。ただし、ProjectA をマージしたくありません。

ここで強調表示されている手順を使用しました。これは、サードパーティのアセンブリの統合に関してシームレスに機能しました。ただし、ProjectB のビルド時にまだこのエラーが発生します。

マージ中に例外が発生しました: 未解決のアセンブリ参照は許可されていません: ProjectA.

ProjectA をマージすることを明示的に指定しているわけではありません。言い換えれば、私はこのプロジェクトに当てはまるとは言いません。IlMerge で ProjectA を無視するにはどうすればよいですか? ちなみに、ProjectA はプロジェクト参照であり、直接のアセンブリ参照ではありません。

ありがとう!

4

2 に答える 2

6

ILMergeの引数を使用して、/libProjectA.dll を含むディレクトリを渡します。

具体的には (ProjectB のターゲット プラットフォームが .NET 4.0 クライアント プロファイルであると仮定):

ILMerge.exe /out:MasterDll.dll
            /targetplatform:v4,"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client"
            /lib:ProjectA\bin\Release
            ProjectB\bin\Release\ProjectB.dll
            Libraries\NHibernate\NHibernate.dll
            Libraries\StructureMap\StructureMap.dll
            ...
于 2010-09-16T15:21:59.013 に答える
-1

4.0 の場合は、次を使用します。

/targetplatform:v4,"%ProgramFiles%\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0"

于 2014-08-06T15:58:10.833 に答える