Aracılığıyla paylaş


Bir ReadyToRun projesini --no-restore ile yayımlamak için geri yüklemede değişiklik yapılması gerekir

ile birlikte -p:PublishReadyToRun=true--no-restorebir proje yayımlarsanız, proje yalnızca önceki dotnet restore bir işlemde geri yüklenen paketlerle oluşturulur. .NET 5'te bu işlem çalıştı ve crossgen'd ikilisi ile sonuçlandı. .NET 6'da aynı işlem NETSDK1094 hatasıyla başarısız olur.

Sürüm kullanıma sunulmuştur

.NET 6

Önceki davranış

Önceki sürümlerde crossgen uygulaması çalışma zamanıyla birlikte paketlenmiştir. Sonuç olarak, çapraz işlem, projenin geri yüklenip geri yüklenmediğine bakılmaksızın uygulamanızda çalışabildi. ek ağ erişimi olmadığından emin olmak için yayımlama komutuna eklemeden --no-restore ayırmak dotnet restoredotnet publishyaygın bir uygulamaydı.

Yeni davranış

.NET 6'da, dotnet restore ardından dotnet publish -p:PublishReadyToRun=true --no-restore gelen NETSDK1094 hatasıyla başarısız olur. Bunun nedeni, çapraz ikili dosyasının artık ayrı bir NuGet paketi olarak gönderilmesidir ve yayımlamanın başarılı olması için geri yükleme işleminin bir parçası olması gerekir.

Değişiklik nedeni

Crossgen ikili dosyası birçok iş yükü için gerekli olmadığından ana SDK'dan ayrılmıştır. Genellikle isteğe bağlı olarak alınır ve yayımlama MSBuild hedefleri artık paketi geri yüklenecek paketler listesine ekleyerek bu alımı işler.

  • Yalıtılmış bir yayımlama deneyimini sürdürmek istiyorsanız, geri yükleme adımına ReadyToRun'ı yayımlayabileceğinizi söyleyin. Geri yükleme komut satırınıza da ekleyin -p:PublishReadyToRun=true .
  • Ya da yayımla komutunun crossgen'i geri yüklemesine izin vermek için yayımlama komut satırınızdan kaldırın --no-restore .