2

概要:ソリューション リポジトリ内のコマンド ラインから nuget.exe を実行するスクリプトがあります。特定のパッケージ ソースのみを使用するように NuGet を構成するにはどうすればよいでしょうか (マシン全体またはユーザーの構成にリストされているものは使用しません)。


NuGet のドキュメントから、複数の構成ファイルのチェーンに関する次の内容を読むことができます。

NuGet は、最初に既定の場所から NuGet.config を読み込み、次に現在のドライブのルートから現在のディレクトリで終わる NuGet.config という名前のファイルを読み込みます。(...)<clear />特定のノードに が存在する場合、このノードに対して以前に定義された構成アイテムは無視されます。

リポジトリのルートに、次の NuGet.Config ファイルを追加して、独自の内部 NuGet リポジトリからのみ NuGet パッケージをフェッチするようにしました。

<!-- C:\repository_root_path\NuGet.Config -->
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageRestore>
    <add key="enabled" value="True" />
  </packageRestore>
  <packageSources>
    <clear /> <!-- ensure only the sources defined below are used -->
    <add key="Internal package source" value="\\network_fileshare\nuget_packages\" />
  </packageSources>
  <disabledPackageSources />
  <activePackageSource>
    <add key="Internal package source" value="\\network_fileshare\nuget_packages\" />
  </activePackageSource>
</configuration>

現在発生している問題は、実行している NuGet.exe のバージョンによって結果が異なることです。デバッグするために、NuGet.exe の 3 つの個別のバージョンをダウンロードし、それらをすべてソリューションの .nuget-folder に配置しました。結果は次のとおりです。

C:\repository_root_path>Source\.nuget\nuget_2.5.40416.exe sources
Registered Sources:

  1.  Internal package source [Enabled]
      \\network_fileshare\nuget_packages\

C:\repository_root_path>Source\.nuget\NuGet_2.6.40619.exe sources
Registered Sources:

  1.  NuGet official package source [Enabled]
      https://nuget.org/api/v2/
  2.  Internal package source [Enabled]
      \\network_fileshare\nuget_packages\

C:\repository_root_path>Source\.nuget\nuget_2.7.40808.exe sources
Registered Sources:

  1.  NuGet official package source [Enabled]
      https://nuget.org/api/v2/
  2.  Internal package source [Enabled]
      \\network_fileshare\nuget_packages\
  3.  https://www.nuget.org/api/v2/ [Disabled]
      https://www.nuget.org/api/v2/

問題は、要素が無視されるようにバージョン 2.5 と 2.6 の間で NuGet にバグが導入されたの<clear />か、それともソリ​​ューション ルートにある NuGet.Config ファイルに何か問題があるのか​​ということです。

4

1 に答える 1

0

これはNuGetのバグとして確認されています。修正はリリース 2.7.2に割り当てられています。

于 2013-10-02T08:10:51.447 に答える