Aracılığıyla paylaş


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 ve üçüncü taraf derlemelerle birlikte paketlendiği bağımsız bir uygulama yayımlamaktır.

Kırpma bağımsız dağıtım modeli, dağıtım boyutunu küçültmek için iyileştirilmiş, bağımsız dağıtım modelinin özelleştirilmiş bir sürümüdür. 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, düzeltici bir kod düzenini tam olarak çözümleyemiyorsa 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ı

Tüm proje türleri kırpılamaz. Daha fazla bilgi için bkz . Bilinen kırpma uyumsuzlukları.

Derleme zamanı analizi zorluklarına neden olan kodlar kırpma 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. İlişkisiz yansımaya örnek olarak XML serileştirmesi gibi eski bir seri hale getirici ve görünmez dış bağımlılıklara örnek olarak yerleşik COM örnek verilmiştir. 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ımlamada kırpı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ırpılmış bir bağımsız uygulama olarak yayımlar.

dotnet publish -r win-x64

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

<PublishTrimmed> , sırasında kırpma uyumsuz özellikleri devre dışı bırakılacak dotnet buildşekilde proje dosyasında ayarlanmalıdır. 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.