[解決済み] Microsoft.Bcl.Build NuGet パッケージは何をするのですか?
質問
これに関するドキュメントを見つけることができません。 Microsoft.Bcl.Build Nuget ページからのリンク。 からのリンクは、あまり助けを提供しません。
このパッケージは、特定の Microsoft パッケージを参照するプロジェクトが正常にビルドできるように、ビルドインフラストラクチャコンポーネントを提供します。
参照を追加するように指示するビルド警告が表示されない限り、このパッケージを直接参照しないでください。
を見る限りでは
Microsoft.Bcl.Build.targets
ファイルを見ると、バインディング リダイレクトとパッケージ参照を管理しているように見えます。 この機能の一部は、Visual Studio で実行する場合にのみ使用されるように見えます。
このパッケージが何をするかについて、どなたかもっと情報を提供していただけないでしょうか。 ビルドサーバー環境では面倒なのですが ソースコードから完全にビルドする場合 (たとえばビルドサーバー環境)、このパッケージを無視することはできますか?
どのように解決するのですか。
を見る限り
Microsoft.Bcl.Build.targets
を見ると、プロジェクトの構成ターゲットの束を持っています。
-
EnsureBindingRedirects
- どの参照がバインディング・リダイレクトに最適化されているかを判断し、それらでapp.configを更新します。 -
BclBuildValidateNugetPackageReferences
- このターゲットは、現在のプロジェクトにインストールされたすべてのNugetパッケージが、その依存関係(推移的依存関係)も現在のプロジェクトにインストールされていることを検証します。
この評価に基づいて、この機能は開発環境で NuGet の依存関係を追加/削除/更新する場合にのみ必要であり、問題を引き起こしている CI 環境では無視してもよいと判断したわけです。
そこで、私は依存関係を私の*.csprojファイルに保持したいのですが、CIビルドを実行するときにそれを無視します。 私は、このブロックを含むビルド環境ターゲット ファイル (例: builder.targets) に条件付きインポートを追加することによって、それを行いました。
<!-- Skip Microsoft.Bcl.Build functionality when building only from Source. -->
<PropertyGroup>
<BclBuildImported>Ignore</BclBuildImported>
</PropertyGroup>
これは、CI環境ではターゲットを無視し、開発環境ではターゲットを有効にするという正味の効果があります。 これを1週間以上実行していますが、今のところ問題はありません...。
私は、これを行うことが悪い考えであることを示す、このパッケージに関するより良い情報を誰かが持っているなら、それを知りたいです。 今のところ、私は良いアイデアだと考えています。
2018-02-01を編集しました。
無視パラメータはコマンドラインでも渡すことができることに注意してください。
Microsoft.Bcl.Build.targets
のロジックをスキップすることができます。
msbuild (targets, etc) /p:BclBuildImported=Ignore
関連
-
[解決済み] 権限 '*' を持つ SSL/TLS の安全なチャネルを確立できませんでした。
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] C#の正しいバージョン番号を教えてください。
-
[解決済み] C#のconstとreadonlyの違いは何ですか?
-
[解決済み] NuGetで旧バージョンのパッケージをダウンロードする
-
[解決済み] packages.config にあるすべてのパッケージを NuGet にインストール/更新させるにはどうすればよいですか?
-
[解決済み] HashSetとListの性能比較
-
[解決済み】NuGetパッケージが見つからない
-
[解決済み] Visual Studio 2017の依存関係における黄色い警告の三角形は何を意味するのか?
-
[解決済み] 警告 : MyProject.csproj を参照しているすべてのプロジェクトは、nuget パッケージ Microsoft.Bcl.Build をインストールする必要があります。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] DockPanelを空きスペースいっぱいに表示させる方法
-
[解決済み] .NET Framework 4 マルチターゲティングパックがアンインストールできない
-
[解決済み] WinSCP 応答待ちタイムアウト
-
[解決済み] DelphiとDelphi.NETの違いについて
-
[解決済み] AssemblyVersion、AssemblyFileVersion、AssemblyInformationalVersionの違いは何ですか?
-
[解決済み] WPFの場合、x:Name属性とName属性の違いは何ですか?
-
[解決済み] Microsoft.ACE.OLEDB.12.0' プロバイダがローカルマシンに登録されていません。
-
[解決済み] PowerShellで文字列がNULLまたは空であるかどうかを確認するにはどうすればよいですか?
-
[解決済み] プライベートメソッドのユニットテストはどのように行うのですか?
-
[解決済み] WCF - メッセージサイズのクォータを増加させる方法