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>