を見るとMicrosoft.Bcl.Build.targets
、プロジェクト構成ターゲットがたくさんあります。例:
EnsureBindingRedirects
-リダイレクトのバインドにオプトインされている参照を特定し、それらを使用してapp.configを更新します
BclBuildValidateNugetPackageReferences
-このターゲットは、現在のプロジェクトにインストールされているNugetパッケージにも、現在のプロジェクトに依存関係(推移的な依存関係)がインストールされていることを検証します。
したがって、この評価に基づいて、この機能は、NuGetの依存関係を追加/削除/更新するときに、開発環境でのみ必要であると判断しました。また、問題を引き起こしているCI環境では無視される可能性があります。
したがって、*。csprojファイルに依存関係を保持したいのですが、CIビルドを実行するときは無視します。これを行うには、次のブロックを含むビルド環境ターゲットファイル(例:builder.targets)に条件付きインポートを追加します。
<PropertyGroup>
<BclBuildImported>Ignore</BclBuildImported>
</PropertyGroup>
これには、CI環境ではターゲットを無視するが、開発環境ではターゲットをアクティブ化するという正味の効果があります。私はこれを1週間以上実行しましたが、これまでのところ問題はありません...
これを行うのは悪い考えであることを示すこのパッケージに関するより良い情報を誰かが持っているかどうかを知りたいです。これまでのところ、それは良い考えだと思います。
2018-02-01を編集:
Microsoft.Bcl.Build.targets
ロジックをスキップするために、ignoreパラメーターをコマンドラインで渡すこともできることに注意してください。
msbuild (targets, etc) /p:BclBuildImported=Ignore
So I want to keep the dependency in my *.csproj files, but ignore it. I did that by adding a conditional import on a build environment targets file (eg builder.targets)
が、詳しく教えていただけますか?