ASP.NET Core için Microsoft.AspNetCore.App

ASP.NET Core paylaşılan çerçevesi (Microsoft.AspNetCore.App), Microsoft tarafından geliştirilen ve desteklenen derlemeleri içerir. Microsoft.AspNetCore.App.NET Core 3.0 veya üzeri SDK yüklendiğinde yüklenir. Paylaşılan çerçeve , makinede yüklü olan ve bir çalışma zamanı bileşeni ile bir hedefleme paketi içeren derleme kümesidir (.dll dosyaları). Daha fazla bilgi için bkz . Paylaşılan çerçeve.

  • SDK'yi Microsoft.NET.Sdk.Web hedefleyen projeler örtük olarak çerçeveye başvurur Microsoft.AspNetCore.App .

Bu projeler için ek başvuru gerekmez:

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>netcoreapp3.0</TargetFramework>
  </PropertyGroup>
    ...
</Project>

ASP.NET Core paylaşılan çerçevesi:

  • Üçüncü taraf bağımlılıkları içermez.
  • ASP.NET Core ekibi tarafından desteklenen tüm paketleri içerir.

Bu özellik, .NET Core 2.x'i hedefleyen ASP.NET Core 2.x gerektirir.

ASP.NET Core için Microsoft.AspNetCore.Appmeta paketi:

  • Json.NET, Remotion.Linq ve IX-Async dışında üçüncü taraf bağımlılıkları içermez. Bu üçüncü taraf bağımlılıklar, ana çerçeve özelliklerinin çalıştığından emin olmak için gerekli kabul edilir.
  • üçüncü taraf bağımlılıkları (daha önce bahsedilenler dışında) içerenler dışında ASP.NET Core ekibi tarafından desteklenen tüm paketleri içerir.
  • Üçüncü taraf bağımlılıkları (daha önce bahsedilenler dışında) içerenler dışında Entity Framework Core ekibi tarafından desteklenen tüm paketleri içerir.

ASP.NET Core 2.x ve Entity Framework Core 2.x'in tüm özellikleri pakete Microsoft.AspNetCore.App dahildir. ASP.NET Core 2.x'i hedefleyen varsayılan proje şablonları bu paketi kullanır. ASP.NET Core 2.x ve Entity Framework Core 2.x'i hedefleyen uygulamaların paketi kullanmasını Microsoft.AspNetCore.App öneririz.

Meta paketin Microsoft.AspNetCore.App sürüm numarası, en düşük ASP.NET Core sürümünü ve Entity Framework Core sürümünü temsil eder.

Meta paketi kullanmak Microsoft.AspNetCore.App , uygulamanızı koruyan sürüm kısıtlamaları sağlar:

  • içinde bir paket üzerinde geçişli (doğrudan değil) bağımlılığı olan bir paket Microsoft.AspNetCore.Appvarsa ve bu sürüm numaraları farklıysa, NuGet bir hata oluşturur.
  • Uygulamanıza eklenen diğer paketler, içinde Microsoft.AspNetCore.Appbulunan paketlerin sürümünü değiştiremez.
  • Sürüm tutarlılığı, güvenilir bir deneyim sağlar. Microsoft.AspNetCore.App , aynı uygulamada birlikte kullanılan ilgili bitlerin test edilmemiş sürüm birleşimlerini önlemek için tasarlanmıştır.

Meta paketi kullanan Microsoft.AspNetCore.App uygulamalar, ASP.NET Core paylaşılan çerçeveden otomatik olarak yararlanir. Meta paketi kullandığınızda Microsoft.AspNetCore.App , başvurulan ASP.NET Core NuGet paketlerinden hiçbir varlık uygulamayla dağıtılmaz; ASP.NET Core paylaşılan çerçevesi bu varlıkları içerir. Paylaşılan çerçevedeki varlıklar, uygulama başlatma süresini geliştirmek için önceden derlenir. Daha fazla bilgi için bkz . Paylaşılan çerçeve.

Aşağıdaki proje dosyası, ASP.NET Core için meta pakete başvurur Microsoft.AspNetCore.App ve tipik bir ASP.NET Core 2.2 şablonunu temsil eder:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.App" />
  </ItemGroup>

</Project>

Yukarıdaki işaretleme tipik bir ASP.NET Core 2.x şablonunu temsil eder. Paket başvurusu için Microsoft.AspNetCore.App bir sürüm numarası belirtmez. Sürüm belirtilmediğinde, SDK tarafından örtük bir sürüm belirtilir, yani Microsoft.NET.Sdk.Web. SDK tarafından belirtilen örtük sürüme güvenmenizi ve paket başvurusunda sürüm numarasını açıkça ayarlamamanızı öneririz. Bu yaklaşımla ilgili sorularınız varsa, Microsoft.AspNetCore.App örtük sürüm için Tartışma bölümünde bir GitHub açıklaması bırakın.

Örtük sürüm, taşınabilir uygulamalar için olarak major.minor.0 ayarlanır. Paylaşılan çerçeve ileri sarma mekanizması, uygulamayı yüklü paylaşılan çerçeveler arasında en son uyumlu sürümde çalıştırır. Geliştirme, test ve üretimde aynı sürümün kullanılmasını garanti etmek için paylaşılan çerçevenin aynı sürümünün tüm ortamlarda yüklü olduğundan emin olun. Bağımsız uygulamalar için örtük sürüm numarası, yüklü SDK'da paketlenmiş paylaşılan çerçeveye ayarlanır major.minor.patch .

Başvuruda Microsoft.AspNetCore.App bir sürüm numarası belirtilmesi, paylaşılan çerçeve sürümünün seçileceğini garanti etmez. Örneğin, "2.2.1" sürümünün belirtildiğini, ancak "2.2.3" sürümünün yüklü olduğunu varsayalım. Bu durumda, uygulama "2.2.3" kullanır. Önerilmiyor olsa da ileri sarmayı devre dışı bırakabilirsiniz (düzeltme eki ve/veya ikincil). dotnet konağı ileri sarma ve davranışını yapılandırma hakkında daha fazla bilgi için bkz . dotnet host roll forward.

<Project Sdkörtük sürümünü Microsoft.AspNetCore.Appkullanacak şekilde Microsoft.NET.Sdk.Web ayarlanmalıdır. ( <Project Sdk="Microsoft.NET.Sdk"> sondaki .Webolmadan) kullanıldığında:

  • Aşağıdaki uyarı oluşturulur:

    Uyarı NU1604: Proje bağımlılığı Microsoft.AspNetCore.App kapsayıcı bir alt sınır içermiyor. Tutarlı geri yükleme sonuçları sağlamak için bağımlılık sürümüne daha düşük bir sınır ekleyin.

  • Bu, .NET Core 2.1 SDK'sı ile ilgili bilinen bir sorundur.

ASP.NET Core'ASP.NET Güncelleştirme

Microsoft.AspNetCore.AppMeta paket, NuGet'ten güncelleştirilen geleneksel bir paket değildir. benzer şekilde Microsoft.NETCore.App, Microsoft.AspNetCore.App NuGet dışında işlenen özel sürüm oluşturma semantiğine sahip paylaşılan bir çalışma zamanını temsil eder. Daha fazla bilgi için bkz . Paketler, meta paketler ve çerçeveler.

ASP.NET Core'ı güncelleştirmek için:

  • Geliştirme makinelerinde ve derleme sunucularında: .NET Core SDK'sını indirip yükleyin.
  • Dağıtım sunucularında: .NET Core çalışma zamanını indirin ve yükleyin.

Uygulamalar, uygulama yeniden başlatıldığında en son yüklü sürüme iletilir. Proje dosyasındaki sürüm numarasını güncelleştirmek Microsoft.AspNetCore.App gerekli değildir. Daha fazla bilgi için bkz . Çerçeveye bağımlı uygulamalar ileri sarma.

Uygulamanız daha önce kullandıysa Microsoft.AspNetCore.Allbkz . Microsoft.AspNetCore.All dosyasından Microsoft.AspNetCore.App geçiş.