私はいくつかの他のものに依存するナゲットパッケージを持っています(例えばNewtonsoft.Json
)。 パッケージは、パッケージの構造は、そのように見えるので、それが唯一のカスタムMSBuildのアクションを追加するクラスライブラリとして使用することが意図されていない:私はパッケージCustomBuildAction.targets
をインストールするとナゲットパッケージからナゲットパッケージを参照する
-package CustomBuildAction
|-lib/net45/CustomBuildAction.dll
|-build/CustomBuildAction.targets
正しくcsprojからreferensedされているが、ときに私がよビルドを実行しようとするとエラーが発生します。
"customBuildAction"タスクを "path to dll/CustomBuildAction.dll"アセンブリから読み込めませんでした。ファイルまたはアセンブリ 'Newtonsoft.Json.dll、Version = ...'またはその依存関係の1つを読み込めませんでした。
パッケージ依存性としてnuspecファイルにNewtonsoft.Json.dll
を含めると、Nugetはそれを依存関係として示しますが、MSBuildは解決できません。
../lib/net45/CustomBuildAction.dll
しかし、このDLLを配置することを意図していない。私にとっては、問題はすなわち、パッケージフォルダに(相対フォルダを構築するために)私は、相対パスを使用して.targetsファイルから
CustomBuildAction.dll
を参照してるということであるように見えますすべての依存関係を見つけることができるビルド出力フォルダに移動します。 この問題を解決するにはどうすればよいですか?パッケージに依存関係を含めるべきか、それを解決する別の方法がありますか?
カスタムMSBuildアクションでのみ使用されているプロジェクトは、CustomBuildAction.dllを参照する必要がありますか?私は.targetsファイルの隣のビルドディレクトリに置いてそこからインポートします。その後、Newtonsoft.Json.dllもビルドディレクトリに置いてください。 –
@Matt Wardいいえ、プロジェクトに参照として追加する必要はありません。 DLLをビルドフォルダに移動しようとすると、興味深いアイデア – Leo