[解決済み] NuGetパッケージのソース設定をソリューションごとに行う方法はありますか?
質問
Visual Studio が NuGet パッケージ ソースの設定をすべてのソリューションに適用するのではなく、ソリューションごとに適用する方法をご存知の方はいらっしゃいますか。 私は、それぞれが独自のプライベートNuGetリポジトリを持っている複数のプロジェクトで作業しているため、バージョン管理の問題を抱え続けています。どの NuGet レポがどのプロジェクトに属しているかを記憶し続け、正しいプロジェクトに正しいものを適用するのは、***の痛みです。
どのように解決するのですか?
TLDR:はい
NuGet は、Windows ユーザー プロファイル レベルの NuGet.config から始まり、ソリューションを含むファイル パスのルートから始めてより詳細な設定を適用し、最終的にソリューション ファイルを含むディレクトリで終了するパッケージ ソースの階層的なアプリケーションを使用します。
親切な Twitter ユーザーがこのドキュメントを紹介してくれたおかげで、私が何とか理解できたことがここにあります。
https://docs.nuget.org/consume/nuget-config-file
NuGet パッケージのソースを編集する場合、Visual Studio の
Tools > NuGet Package Manager > Package Manager Settings: Package Sources
オプションで NuGet パッケージソースを編集すると、その変更をデフォルトで
%APPDATA%\NuGet
ディレクトリにある NuGet.config ファイルに適用されます。ソリューションごと(またはソリューションのグループごと)にこれらの設定を上書きするには、ソリューションまたはソリューションのパスに沿ってどこかに戦略的に配置された NuGet.config ファイルを追加する必要があります。
NuGet ドキュメントを読めばすべてが明らかになりますが、私が以下に提供するソリューションは、単一の Visual Studio ソリューションの設定を迅速に指定することを可能にします。
- APPDATA%EnterpriseNuGet に移動して、NuGet.config のコピーを取得します。
- ソリューションのルートにコピーをダンプします - すなわち、Application.sln が存在する場所。
- このソリューションに関連する NuGet パッケージ ソースのみを含むようにコピーを編集して、ユーザー プロファイルに適用されるデフォルトをオーバーライドします。たとえば、このソリューションの専有パッケージを含むが、他のプロジェクトに適用すべきではないプライベート NuGet ソースなどです。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageRestore>
<add key="enabled" value="True" />
<add key="automatic" value="True" />
</packageRestore>
<activePackageSource>
<add key="All" value="(Aggregate source)" />
</activePackageSource>
<packageSources>
<!-- Ditch all the Global NuGet package sources we only want a
single private NuGet repo for this project -->
<clear />
<!-- Add the private NuGet package source for this solution -->
<add key="My Private NuGet Server" value="http://myprivatenuget.com:8080/nuget" />
</packageSources>
<disabledPackageSources>
<!-- Add any package sources to ignore here using the same keys as
defined in the packageSources list above-->
<!--<add key="nuget.org" value="true" />-->
<add key="Microsoft and .NET" value="true" />
</disabledPackageSources>
</configuration>
ある設定を複数のソリューションに適用したい場合、ソリューションフォルダがすべて共通のディレクトリに含まれていることを確認し、それらのソリューションに関連するパッケージソースの NuGet.config をその共通のディレクトリに配置します。 でないプロジェクトのソリューション フォルダが を使用しないプロジェクトのソリューション フォルダーは、この共通フォルダーに含まれないようにします。
関連
-
[解決済み] Visual Studioでのソリューションファイルの最適な保存場所を教えてください。
-
[解決済み] Microsoft Visual Studio (VS)」エラー "設定された開発用Webサーバーに接続できません "の解決方法
-
[解決済み] 例外が発生しました。これは、Visual Studio 2013の拡張機能が原因である可能性があります。
-
[解決済み] Visual Studioのデバッグ/ロードが非常に遅い
-
[解決済み] Visual Studioでデバッグすると、"file is used by another process "というエラーが発生するのですが?
-
[解決済み] NuGetで旧バージョンのパッケージをダウンロードする
-
[解決済み] NuGetパッケージの.nupkgファイルをローカルにインストールするにはどうしたらいいですか?
-
[解決済み] コマンドラインを使用してNuGetパッケージのキャッシュをクリアするにはどうすればよいですか?
-
[解決済み】Visual Studioはタブを4つのスペースに置き換えますか?
-
[解決済み] Nuget リファレンスを復元しますか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Visual Studioで不整合な行末を正規化するとはどういう意味ですか?
-
[解決済み] インストール : Microsoft Visual C++ Redistributable は、「Processing.NET」でスタックしました。Windows7_MSU_X64' でスタックしました。
-
[解決済み] 仮想ディレクトリの作成に失敗し、エラーが発生しました。
-
[解決済み] Visual Studio - 構成マネージャ
-
[解決済み] Visual Studio上でSFMLを手動で設定する
-
[解決済み] デバッグ時にCOMコンポーネントの呼び出しからエラーHRESULT E_FAILが返された VS2012
-
[解決済み】Visual Studio Communityは30日体験版ですか?
-
[解決済み】Visual Studio 2012、2013、2015、VS Codeで正規表現による検索と置換でキャプチャグループを参照する方法
-
[解決済み】Visual Studioはタブを4つのスペースに置き換えますか?
-
[解決済み】Visual Studio Server ExplorerでLocalDBに接続する方法は?