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-restore
bir 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 restore
dotnet publish
yaygı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.
Önerilen eylem
- 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
.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin