Kendi içinde dağıtım çalışma zamanını ileri sarma
.NET Core bağımsız uygulama dağıtımları hem .NET Core kitaplıklarını hem de .NET Core çalışma zamanını içerir. .NET Core 2.1 SDK'sı (sürüm 2.1.300) ile başlayarak, bağımsız uygulama dağıtımı makinenizde en yüksek düzeltme eki çalışma zamanını yayımlar. Varsayılan olarak, dotnet publish
bağımsız dağıtım için yayımlama makinesinde SDK'nın parçası olarak yüklenen en son sürümü seçer. Bu, dağıtılan uygulamanızın sırasında publish
kullanılabilen güvenlik düzeltmeleriyle (ve diğer düzeltmelerle) çalışmasını sağlar. Yeni bir düzeltme eki almak için uygulamanın yeniden yayımlanması gerekir. Bağımsız uygulamalar, komutta belirtilerek -r <RID>
veya proje dosyasında (csproj / vbproj) veya komut satırında çalışma zamanı tanımlayıcısı (RID) belirtilerek dotnet publish
oluşturulur.
Düzeltme eki sürümü ileri sarmaya genel bakış
restore
ve build
publish
ayrı olarak çalışabilen komutlardır dotnet
. Çalışma zamanı seçimi, veya build
değilpublish
, işlemin bir parçasıdırrestore
. çağrısı publish
yaparsanız en son düzeltme eki sürümü seçilir. bağımsız değişkeniyle --no-restore
çağırırsanızpublish
, daha önce restore
bağımsız değişken içeren yeni uygulama yayımlama ilkesiyle yürütülmemiş olabileceğinden istenen düzeltme eki sürümünü alamayabilirsiniz. Bu durumda, aşağıdakine benzer metinlerle bir derleme hatası oluşturulur:
"Proje, Microsoft.NETCore.App sürüm 2.0.0 kullanılarak geri yüklendi, ancak geçerli ayarlarla bunun yerine sürüm 2.0.6 kullanılacaktı. Bu sorunu çözmek için, geri yükleme ve derleme veya yayımlama gibi sonraki işlemler için aynı ayarların kullanıldığından emin olun. Bu sorun genellikle RuntimeIdentifier özelliği derleme veya yayımlama sırasında ayarlandıysa ancak geri yükleme sırasında ayarlanmadıysa oluşabilir."
Not
restore
ve build
gibi publish
başka bir komutun parçası olarak örtük olarak çalıştırılabilir. Başka bir komutun parçası olarak örtük olarak çalıştırıldığında, doğru yapıtların üretilmesi için ek bağlam sağlanır. Çalışma zamanıyla (örneğin, dotnet publish -r linux-x64
) kullandığınızdapublish
, restore
örtük olarak linux-x64 çalışma zamanı paketlerini geri yükler. Açıkça çağırırsanız restore
, çalışma zamanı paketlerini varsayılan olarak geri yüklemez, çünkü bu bağlama sahip değildir.
Yayımlama sırasında geri yüklemeyi önleme
İşlemin publish
bir parçası olarak çalışmak restore
senaryonuz için istenmeyen bir durum olabilir. Bağımsız uygulamalar oluştururken bunu önlemek restore
publish
için aşağıdakileri yapın:
RuntimeIdentifiers
özelliğini, yayımlanacak tüm RID'lerin noktalı virgülle ayrılmış listesine ayarlayın.TargetLatestRuntimePatch
özelliğinitrue
olarak ayarlayın.
Dotnet yayımlama seçenekleriyle geri yükleme yok bağımsız değişkeni
Aynı proje dosyasıyla hem bağımsız uygulamaları hem de çerçeveye bağımlı uygulamaları oluşturmak ve ile dotnet publish
bağımsız değişkenini --no-restore
kullanmak istiyorsanız, aşağıdakilerden birini seçin:
Çerçeveye bağımlı davranışı tercih edin. Uygulama çerçeveye bağımlıysa, bu varsayılan davranıştır. Uygulama kendi içindeyse ve eşleşmeyen bir 2.1.0 yerel çalışma zamanı kullanabiliyorsa, proje dosyasında olarak ayarlayın
TargetLatestRuntimePatch
false
.Kendi içinde davranışı tercih edin. Uygulama kendi içindeyse, bu varsayılan davranıştır. Uygulama çerçeveye bağımlıysa ve en son düzeltme ekinin yüklenmesini gerektiriyorsa, proje dosyasında olarak
true
ayarlayınTargetLatestRuntimePatch
.Proje dosyasındaki belirli düzeltme eki sürümüne ayarlayarak
RuntimeFrameworkVersion
çalışma zamanı çerçevesi sürümünün açık denetimini alın.