RID default yang digunakan saat menargetkan .NET Framework
Di .NET 8, perubahan diperkenalkan ke menggunakan graf pengidentifikasi runtime (RID) yang lebih kecil saat menargetkan net8.0
dan versi yang lebih baru.
Namun, ini menyulitkan pelanggan yang melakukan multi-target pada .NET dan .NET Framework. Itu karena pemulihan terjadi sekali, tetapi proyek .NET Framework mencoba menggunakan default RID lama dan proyek .NET (Core) mencoba menggunakan grafik RID baru yang dikurangi.
Untuk mengaktifkan skenario multi-penargetan ini, RID default yang kompatibel dengan grafik RID baru sekarang digunakan dalam skenario ini.
Versi diperkenalkan
.NET 9 GA
Perilaku sebelumnya
Proyek SDK yang menargetkan .NET Framework tanpa setelan RID akan default ke win7-x86
atau win7-x64
.
Perilaku baru
Proyek dengan gaya SDK yang ditujukan untuk .NET Framework tanpa RID secara default diatur ke win-x86
atau win-x64
.
Jenis perubahan yang melanggar
Perubahan ini dapat memengaruhi kompatibilitas sumber .
Alasan perubahan
Aplikasi .NET Framework mendapatkan RID default yang tidak kompatibel dengan grafik RID portabel. Ketidaksesuaian tersebut mengakibatkan kesalahan pemulihan:
Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(266,5): kesalahan NETSDK1047: File aset 'D:\1\s\artifacts\obj\MSBuild\project.assets.jsaktif' tidak memiliki target untuk 'net472/win7-x64'. Pastikan pemulihan telah berjalan dan Anda telah menyertakan 'net472' dalam TargetFrameworks untuk proyek Anda. Anda mungkin juga perlu menyertakan 'win7-x64' dalam RuntimeIdentifiers proyek Anda. [MSBuild.csproj::TargetFramework=net472]>
Untuk informasi selengkapnya, lihat isu dotnet/sdk #35575
Tindakan yang direkomendasikan
Jika Anda terpengaruh oleh perubahan ini, pilih salah satu tindakan berikut:
Perbarui pengidentifikasi runtime Anda ke nilai yang didukung oleh grafik RID portabel. Contoh file proyek:
<PropertyGroup> <RuntimeIdentifier>win-x64</RuntimeIdentifier> </PropertyGroup>
Jika Anda menentukan RID sebagai argumen baris perintah, buat perubahan serupa. Misalnya,
dotnet publish --runtime win-x64
.Beralih kembali ke grafik RID lama dengan mengatur
UseRidGraph
ketrue
dalam file proyek:<PropertyGroup> <UseRidGraph>true</UseRidGraph> </PropertyGroup>
API yang terpengaruh
Tidak.