Kendi içinde bulunan dağıtımları ve yürütülebilir dosyaları kırp

Çerçeveye bağımlı dağıtım modeli , .NET'in başlangıcından bu yana en başarılı dağıtım modeli olmuştur. Bu senaryoda, uygulama geliştiricisi yalnızca .NET çalışma zamanı ve çalışma zamanı kitaplıklarının istemci makinede kullanılabilir olması beklentisiyle uygulama ve üçüncü taraf derlemelerini paketler. Bu dağıtım modeli, en son .NET sürümünde baskın olan model olmaya devam eder, ancak çerçeveye bağımlı modelin en iyi seçenek olmadığı bazı senaryolar vardır. Bunun alternatifi, .NET çalışma zamanı ve çalışma zamanı kitaplıklarının, uygulama ile üçüncü taraf derlemelerle birlikte paketlendiği bağımsız bir uygulama yayımlamaktır.

Bağımsız dağıtım modelinin, dağıtım boyutunu küçültmek için optimize edilmiş özel bir sürümü olan kırpma bağımsız dağıtım modelidir. Dağıtım boyutunu en aza indirmek Blazor uygulamaları gibi bazı istemci tarafı senaryoları için kritik bir gereksinimdir. Uygulamanın karmaşıklığına bağlı olarak, çerçeve derlemelerinin yalnızca bir alt kümesine başvurulur ve uygulamayı çalıştırmak için her derlemedeki kodun bir alt kümesi gerekir. Kitaplıkların kullanılmayan bölümleri gereksizdir ve paketlenmiş uygulamadan kırpılabilir.

Ancak, uygulamanın derleme zamanı analizinin çeşitli sorunlu kod desenlerini güvenilir bir şekilde çözümleyememesi (büyük ölçüde yansıma kullanımına dayalı) nedeniyle çalışma zamanında hatalara neden olma riski vardır. Bu sorunları azaltmak için, trimmer bir kod örüntüsünü tam olarak çözümleyemediğinde uyarılar oluşturulur. Kırpma uyarılarının anlamı ve bunların nasıl çözüleceğini öğrenmek için bkz. Kırpma uyarılarını düzeltme. Kırpmanın nasıl çalıştığını ve belirli desenlerin neden uyarılara neden olduğunu anlamak için bkz. Kırpma analizini anlama.

Not

  • Kırpma işlemi .NET 6 ve sonraki sürümlerde tam olarak desteklenir. .NET Core 3.1 ve .NET 5'te kırpma deneysel bir özellikti.
  • Kırpma yalnızca bağımsız olarak yayımlanan uygulamalar için kullanılabilir.

Kırpma sorunlarına neden olan bileşenler

Uyarı

Her proje türü kırpılamaz. Daha fazla bilgi için Bilinen kırpma uyumsuzlukları bölümüne bakın.

Derleme zamanı analizi zorluklarına yol açan herhangi bir kod kesme için uygun değildir. Bir uygulama tarafından kullanıldığında sorunlu olan bazı yaygın kodlama desenleri, derleme zamanında görünür olmayan ilişkisiz yansıma kullanımından ve dış bağımlılıklardan kaynaklanır. Sınırsız yansımaya örnek olarak, XML serileştirmesi gibi eski bir seri hale getirici verilebilir ve görünmez dış bağımlılıklara örnek olarak yerleşik COM gösterilebilir. Uygulamanızdaki kırpma uyarılarını gidermek için bkz. Kırpma uyarılarını düzeltme ve kitaplığınızı kırpmayla uyumlu hale getirmek için bkz. Kırpma için .NET kitaplıklarını hazırlama.

Kırpmayı etkinleştirme

  1. Proje dosyanıza ekleyin <PublishTrimmed>true</PublishTrimmed> .

    Bu özellik, bağımsız yayımlama sırasında küçültülmüş bir uygulama oluşturur. Ayrıca kırpma uyumsuz özellikleri kapatır ve derleme sırasında kırpma uyumluluğu uyarılarını gösterir.

    <PropertyGroup>
        <PublishTrimmed>true</PublishTrimmed>
    </PropertyGroup>
    
  2. Ardından dotnet publish komutunu veya Visual Studio'yu kullanarak uygulamanızı yayımlayın .

CLI ile yayımlama

Aşağıdaki örnek, Windows için uygulamayı küçültülmüş ve bağımsız çalışan bir uygulama olarak yayımlar.

dotnet publish -r win-x64

Kesmeler yalnızca bağımsız uygulamalar için desteklenir.

<PublishTrimmed> , sırasında kırpma uyumsuz özellikleri devre dışı kalacak şekilde proje dosyasında ayarlanmalıdır dotnet build. Ancak, bu seçeneği bağımsız değişken dotnet publisholarak da ayarlayabilirsiniz:

dotnet publish -r win-x64 -p:PublishTrimmed=true

Daha fazla bilgi için bkz. .NET uygulama yayımlamaya genel bakış.

Visual Studio ile yayımlama

  1. Çözüm Gezgini'nde, yayımlamak istediğiniz projeye sağ tıklayın ve Özellikler'iseçin.

    Çözüm Gezgini'nde Özellikler seçeneğini vurgulayan sağ tıklama menüsü .

  2. Oluştur>YayımlaSeç.

    Visual Studio'da Kırpılmış Yayımlama seçeneğiyle yayımlama sayfası .

  3. Uygulamanızı kırpılmış olarak yayımlamak için Kırpılmış yayımla'yı seçin.

    Kırpılmış Yayımlama'nın seçildiği Visual Studio yayımlama sayfası .

Daha fazla bilgi için bkz. .NET uygulama yayımlamaya genel bakış.

Sonraki Adımlar

Kırpmayı etkinleştirdikten sonra, yapı sırasında kırpma uyarılarıyla karşılaşabilirsiniz. Bunları anlamak ve çözmek için şu kılavuzları izleyin:

Ayrıca bkz.