Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Perintahdotnet pack, yang mengemas kode ke dalam paket NuGet, sekarang menggunakan konfigurasi Release daripada konfigurasi Debug sebagai default.
Perilaku sebelumnya
Sebelumnya, dotnet pack gunakan Debug konfigurasi kecuali konfigurasi ditentukan secara eksplisit atau PackRelease diatur ke true.
PropertiPackRelease ditambahkan dalam .NET 7 sebagai langkah untuk menghadapi perubahan besar ini. Sebelumnya, Anda dapat mengatur DOTNET_CLI_ENABLE_PACK_RELEASE_FOR_SOLUTIONS variabel lingkungan untuk digunakan PackRelease dalam proyek yang merupakan bagian dari solusi Visual Studio.
Perilaku baru
Jika Anda mengembangkan dengan .NET 8 SDK atau versi yang lebih baru, dotnet pack gunakan Release konfigurasi secara default untuk semua proyek. Jika Anda memiliki skrip CI/CD, pengujian, atau kode di mana Anda telah menghardcode ke dalam jalur output Debug, perubahan ini dapat merusak alur kerja Anda. Selain itu, Anda tidak akan dapat men-debug aplikasi yang dikemas kecuali Debug konfigurasi ditentukan secara eksplisit (misalnya, menggunakan dotnet pack --configuration Debug.
dotnet pack dapat mengemas beberapa moniker kerangka kerja target (TFM) secara bersamaan. Jika proyek Anda menargetkan beberapa versi dengan nilai PackRelease yang berbeda untuk setiap target, Anda dapat mengalami konflik di mana beberapa TFM mengemas konfigurasi Release dan yang lainnya mengemas konfigurasi Debug.
Untuk proyek dalam solusi perangkat lunak:
dotnet packdapat mengemas semua proyek dalam solusi Visual Studio jika diberikan file solusi. Untuk setiap proyek dalam solusi, nilaiPackReleasediatur secara implisit ketruejika tidak terdefinisi. Agardotnet packdapat menentukan konfigurasi yang tepat untuk digunakan, semua proyek dalam solusi harus menyetujui nilai dariPackRelease.Perubahan ini dapat menyebabkan performa
dotnet packke regresi, terutama untuk solusi yang berisi banyak proyek. Untuk mengatasi hal ini, variabelDOTNET_CLI_LAZY_PUBLISH_AND_PACK_RELEASE_FOR_SOLUTIONSlingkungan baru telah diperkenalkan.Variabel
DOTNET_CLI_ENABLE_PACK_RELEASE_FOR_SOLUTIONSlingkungan tidak lagi dikenali.
Versi yang diperkenalkan
Pratinjau .NET 8 1
Jenis perubahan yang memutus kompatibilitas
Perubahan ini dapat memengaruhi kompatibilitas sumber dan juga merupakan perubahan perilaku.
Alasan perubahan
Dalam kebanyakan kasus ketika Anda membuat paket, Anda ingin kode Anda dioptimalkan dan dapat membuat paket lebih kecil dengan mengecualikan informasi debugging.
Variabel DOTNET_CLI_ENABLE_PACK_RELEASE_FOR_SOLUTIONS lingkungan dihapus karena perilaku yang diaktifkannya sekarang adalah perilaku default dan kontrol terperinci tidak lagi diperlukan.
Tindakan yang direkomendasikan
Untuk menonaktifkan perilaku baru sepenuhnya, Anda dapat mengatur
DOTNET_CLI_DISABLE_PUBLISH_AND_PACK_RELEASEvariabel lingkungan ketrue(atau nilai lainnya). Variabel ini mempengaruhi baikdotnet publishmaupundotnet pack.Untuk secara eksplisit menentukan konfigurasi
Debuguntuk pengemasan, gunakan opsi-catau--configurationdengandotnet pack.Jika alur CI/CD Anda rusak karena jalur output yang dikodekan secara permanen, perbarui jalur ke
Releasealih-alihDebug, nonaktifkan perilaku baru menggunakanDOTNET_CLI_DISABLE_PUBLISH_AND_PACK_RELEASEvariabel lingkungan, atau tentukan bahwaDebugkonfigurasi harus digunakan.Jika Anda mengemas solusi dan itu rusak karena satu atau beberapa proyek secara eksplisit menetapkan nilai untuk
PackRelease, Anda harus secara eksplisit diaturPackReleasekefalsedi setiap proyek:<PropertyGroup> <PackRelease>false</PackRelease> </PropertyGroup>Jika Anda mengemas solusi dan kinerjanya menurun, Anda dapat mengatur variabel lingkungan
DOTNET_CLI_LAZY_PUBLISH_AND_PACK_RELEASE_FOR_SOLUTIONSketrue(atau nilai lainnya) untuk mengatasi penurunan tersebut. Jika Anda menggunakan variabel ini dan proyek apa pun mendefinisikanPackRelease, semua proyek harus menentukannya, atau Anda dapat menggunakan file Directory.Build.Props . Variabel ini mempengaruhi baikdotnet publishmaupundotnet pack.