packages.config 参照
packages.config
ファイルは、プロジェクトで参照されるパッケージの一覧を保守管理するために、一部のプロジェクト タイプで使用されます。 これにより NuGet は、ビルド サーバーなど、別のコンピューターにプロジェクトを転送するとき、一部のパッケージだけでプロジェクトの依存関係を簡単に復元できます。
使用する場合は、packages.config
をプロジェクト ルートに配置する必要があります。 これは、最初の NuGet 操作の実行時に自動的に作成されますが、nuget restore
などのコマンドを実行する前に手動で作成することもできます。
PackageReference を使用するプロジェクトでは、packages.config
は使用されません。
[スキーマ]
このスキーマは単純です。標準の XML ヘッダーは、1 つまたは複数の <packages>
要素を含むシングル <package>
ノードです。要素は参照ごとに 1 つになります。 各 <package>
要素に次の属性を指定できます。
Attribute | 必須 | 内容 |
---|---|---|
ID | はい | Newtonsoft.json や Microsoft.AspNet.Mvc など、パッケージの識別子。 |
version | はい | 3.1.1 や 4.2.5.11-beta など、インストールするパッケージの正確なバージョン。 バージョン文字列には少なくとも 3 つの数字を含める必要があります。4 番目はプレリリース サフィックスであり、任意です。 範囲は許可されません。 |
targetFramework | いいえ | ターゲット フレームワーク モニカー (TFM) はパッケージのインストール時に適用されます。 パッケージのインストール時、これは最初、プロジェクトのターゲットに設定されます。 結果的に、異なる <package> 要素に異なる TFM が与えられます。 たとえば、.NET 4.5.2 を対象とするプロジェクトを作成する場合、そのポイントでインストールされたパッケージは net452 の TFM を使用します。 後でプロジェクトのターゲットを .NET 4.6 に変更し、パッケージを追加する場合、net46 の TFM が使用されます。 プロジェクトのターゲットと targetFramework 属性に不一致があると警告が出ます。その場合、影響が出たパッケージを再インストールできます。 |
allowedVersions | いいえ | パッケージ更新中に適用された、このパッケージの許可されるバージョンの範囲 (「アップグレード バージョンの制約」をご覧ください)。 インストール操作中または復元操作中にインストールされるパッケージには影響を与えません。 構文については、「Package versioning」(パッケージのバージョン管理) を参照してください。 PackageManager UI も、許可される範囲外のすべてのバージョンを無効にします。 |
developmentDependency | いいえ | コンシューミング プロジェクト自体で NuGet パッケージが作成される場合、依存関係に対してこれを true に設定すると、そのパッケージがコンシューミング パッケージの作成時に含まれません。 既定値は、false です。 |
例
次の packages.config
は 2 つの依存関係を参照します。
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="jQuery" version="3.1.1" targetFramework="net46" />
<package id="NLog" version="4.3.10" targetFramework="net46" />
</packages>
次の packages.config
は 9 つのパッケージを参照しますが、developmentDependency
属性に起因し、Microsoft.Net.Compilers
はコンシューミング パッケージのビルド時に含まれません。 Newtonsoft.Json の参照はまた、更新を 8.x バージョンと 9.x バージョンのみに制限します。
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.0" targetFramework="net46" />
<package id="Microsoft.Net.Compilers" version="1.0.0" targetFramework="net46" developmentDependency="true" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net46" />
<package id="Microsoft.Web.Xdt" version="2.1.1" targetFramework="net46" />
<package id="Newtonsoft.Json" version="8.0.3" allowedVersions="[8,10)" targetFramework="net46" />
<package id="NuGet.Core" version="2.11.1" targetFramework="net46" />
<package id="NuGet.Server" version="2.11.2" targetFramework="net46" />
<package id="RouteMagic" version="1.3" targetFramework="net46" />
<package id="WebActivatorEx" version="2.1.0" targetFramework="net46" />
</packages>