Bagikan melalui


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.

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 ke true dalam file proyek:

    <PropertyGroup>
      <UseRidGraph>true</UseRidGraph>
    </PropertyGroup>
    

API yang terpengaruh

Tidak.