Aracılığıyla paylaş


.NET Framework hedeflenirken kullanılan varsayılan RID

.NET 8'de, ve sonraki sürümleri hedeflerken daha küçük bir çalışma zamanı tanımlayıcısı (RID) grafı kullanmak bir değişiklik yapıldı.

Ancak bu, .NET ve .NET Framework'e birden fazla platforma hitap eden müşterilerde bozulmalara yol açtı. Bunun nedeni geri yüklemenin bir kez gerçekleşmesidir, ancak .NET Framework projesi eski RID varsayılanını kullanmayı denerken .NET (Core) projesi de yeni azaltılmış RID grafiğini kullanmaya çalışır.

Bu çoklu hedefleme senaryoyu etkinleştirmek için, bu senaryoda artık yeni RID grafiğiyle uyumlu bir varsayılan RID kullanılmıştır.

Sürüm kullanıma sunulmuştur

.NET 9 GA

Önceki davranış

RID ayarlanmamış bir şekilde .NET Framework'ü hedef alan SDK tarzı projeler varsayılan olarak win7-x86 veya win7-x64oluyordu.

Yeni davranış

RID ayarlanmamış olan .NET Framework'ü hedefleyen SDK tarzı projeler varsayılan olarak win-x86 veya win-x64şeklindedir.

Kapsamlı değişikliğin türü

Bu değişiklik kaynak uyumluluğunuetkileyebilir.

Değişiklik nedeni

.NET Framework uygulamaları, taşınabilir RID grafiğiyle uyumlu olmayan varsayılan bir RID alıyordu. Bu uyumsuzluk geri yükleme hatasına neden oldu:

Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(266,5): hata NETSDK1047: 'D:\1\s\artifacts\obj\MSBuild\project.assets.json' varlık dosyasının 'net472/win7-x64' için bir hedefi yok. Geri yükleme işleminin çalıştığından ve projeniz için TargetFrameworks'e 'net472' eklediğinizden emin olun. Ayrıca projenizin RuntimeIdentifiers öğesine 'win7-x64' eklemeniz gerekebilir. [MSBuild.csproj::TargetFramework=net472]>

Daha fazla bilgi için bkz. dotnet/sdk sorunu #35575.

Bu değişiklikten etkilendiyseniz aşağıdaki eylemlerden birini seçin:

  • Çalışma zamanı tanımlayıcınızı taşınabilir RID grafı tarafından desteklenen bir değerle güncelleştirin. Proje dosyası örneği:

    <PropertyGroup>
        <RuntimeIdentifier>win-x64</RuntimeIdentifier>
    </PropertyGroup>
    

    RID'yi komut satırı bağımsız değişkeni olarak belirtirseniz, benzer bir değişiklik yapın. Örneğin, dotnet publish --runtime win-x64.

  • Proje dosyasında UseRidGraphtrue olarak ayarlayarak eski RID grafiğine geri dönün.

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

Etkilenen API'ler

Hiç kimse.