Aracılığıyla paylaş


Bağımsız dağıtım çalışma zamanı ileri taşıma

.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 publish sırasında kullanılabilen güvenlik düzeltmeleri (ve diğer düzeltmeler) ile çalışmasını sağlar. Yeni bir düzeltme eki almak için uygulamanın yeniden yayımlanması gerekir. Bağımsız uygulamalar, komutta -r <RID> belirtilerek dotnet publish veya proje dosyasında (csproj / vbproj) veya komut satırında çalışma zamanı tanımlayıcısı (RID) belirtilerek oluşturulur.

Sürüm düzeltme ekini ilerletmeye genel bakış

restoreve buildpublish ayrı olarak çalışabilen komutlardır dotnet . Çalışma zamanı seçimi, restore veya publish değil, build işlemin bir parçasıdır. publish çağrısı yaparsanız, en son düzeltme eki sürümü seçilir. publish bağımsız değişkeniyle --no-restore çağırırsanız, daha önceki bir restore yeni, kendinden kapsamlı uygulama yayımlama politikasıyla 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."

Uyarı

restore ve build gibi publishbaş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ıklarında, doğru çıktılarının üretilmesi için ek bağlam sağlanır. Çalışma zamanıyla (örneğin, publish) kullandığınızdadotnet publish -r linux-x64, 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

restore işlemin publish parçası olarak çalıştırılması, senaryonuz için istenmeyen bir durum olabilir. Kendi bünyesinde çalışan uygulamalar oluştururken restorepublish durumu oluşmasını önlemek 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ğini trueolarak ayarlayın.

Dotnet publish seçenekleri arasında no-restore bağımsız değişkeni

Aynı proje dosyasıyla hem bağımsız uygulamalar hem de çerçeveye bağımlı uygulamalar oluşturmak istiyorsanız ve --no-restore bağımsız değişkeni dotnet publish ile kullanmayı planlıyorsanız, aşağıdakilerden birini seçin:

  1. Çerçeveye bağımlı davranışı tercih edin. Uygulama çerçeveye bağımlıysa, bu varsayılan davranıştır. Uygulama bağımsızsa ve yamalanmamış bir 2.1.0 yerel çalışma zamanı kullanabiliyorsa, TargetLatestRuntimePatch değerini proje dosyasında false olarak ayarlayın.

  2. Bağımsız 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 TargetLatestRuntimePatch değerini true olarak ayarlayın.

  3. Proje dosyasında RuntimeFrameworkVersion öğesini belirli bir düzeltme eki sürümüne ayarlayarak çalışma zamanı çerçevesi sürümünü açıkça kontrol edin.