referensi packages.config

File packages.config digunakan dalam beberapa jenis proyek untuk mempertahankan daftar paket yang dirujuk oleh proyek. Ini memungkinkan NuGet untuk dengan mudah memulihkan dependensi proyek ketika proyek akan diangkut ke komputer yang berbeda, seperti server build, tanpa semua paket tersebut.

Jika digunakan, packages.config harus terletak di akar proyek. Ini secara otomatis dibuat ketika operasi NuGet pertama dijalankan, tetapi juga dapat dibuat secara manual sebelum menjalankan perintah apa pun seperti nuget restore.

Proyek yang menggunakan PackageReference tidak menggunakan packages.config.

Skema

Skemanya sederhana: mengikuti header XML standar adalah satu <packages> simpul yang berisi satu atau beberapa <package> elemen, satu untuk setiap referensi. Setiap <package> elemen dapat memiliki atribut berikut:

Atribut Diperlukan Deskripsi
id Ya Pengidentifikasi paket, seperti Newtonsoft.json atau Microsoft.AspNet.Mvc.
versi Ya Versi paket yang tepat untuk diinstal, seperti 3.1.1 atau 4.2.5.11-beta. String versi harus memiliki setidaknya tiga angka; keempat bersifat opsional, seperti halnya akhiran pra-rilis. Rentang tidak diperbolehkan.
targetFramework No Moniker kerangka kerja target (TFM) untuk diterapkan saat menginstal paket. Ini awalnya diatur ke target proyek saat paket diinstal. Akibatnya, elemen yang berbeda <package> dapat memiliki TFM yang berbeda. Misalnya, jika Anda membuat proyek yang menargetkan .NET 4.5.2, paket yang diinstal pada saat itu akan menggunakan TFM net452. Jika Anda ; kemudian targetkan ulang proyek ke .NET 4.6 dan tambahkan lebih banyak paket, yang akan menggunakan TFM net46. Ketidakcocokan antara target proyek dan targetFramework atribut akan menghasilkan peringatan, dalam hal ini Anda dapat menginstal ulang paket yang terpengaruh.
allowedVersions No Rentang versi yang diizinkan untuk paket ini diterapkan selama pembaruan paket (lihat Batasan pada versi peningkatan. Ini tidak memengaruhi paket apa yang diinstal selama operasi penginstalan atau pemulihan. Lihat Penerapan versi paket untuk sintaks. UI PackageManager juga menonaktifkan semua versi di luar rentang yang diizinkan.
developmentDependency No Jika proyek yang mengkonsumsi itu sendiri membuat paket NuGet, mengaturnya ke true untuk dependensi mencegah paket tersebut disertakan saat paket yang menggunakan dibuat. Default adalah false.

Contoh

Berikut ini packages.config mengacu pada dua dependensi:

<?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>

Berikut ini packages.config mengacu pada sembilan paket, tetapi Microsoft.Net.Compilers tidak akan disertakan saat membangun paket yang mengkonsumsi karena developmentDependency atribut . Referensi ke Newtonsoft.Json juga membatasi pembaruan hanya untuk versi 8.x dan 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>