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ığı 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 göre ortalanmış) 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ına giriş.

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ına giriş 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 CLI ile .NET uygulamalarını yayımlama.

Visual Studio ile yayımlama

  1. Çözüm Gezgini'da, yayımlamak istediğiniz projeye sağ tıklayın ve Yayımla'yı seçin.

    Solution Explorer with a right-click menu highlighting the Publish option.

    Henüz yayımlama profiliniz yoksa, yönergeleri izleyerek bir tane oluşturun ve Klasör hedef türünü seçin.

  2. Diğer eylemler Düzenle'yi> seçin.

    Visual studio publish profile with edit button.

  3. Profil ayarları iletişim kutusunda aşağıdaki seçenekleri ayarlayın:

    • Dağıtım modunu Bağımsız olarak ayarlayın.
    • Hedef çalışma zamanını yayımlamak istediğiniz platforma ayarlayın.
    • Kullanılmayan kodu kırp'ı seçin.

    Ayarları kaydetmek ve Yayımla iletişim kutusuna dönmek için Kaydet'i seçin.

    Profile settings dialog with deployment mode, target runtime, and trim unused assemblies options highlighted.

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

Daha fazla bilgi için bkz . Visual Studio ile .NET Core uygulamaları yayımlama.

Mac için Visual Studio ile yayımlama

Mac için Visual Studio uygulamanızı yayımlamak için seçenekler sağlamaz. CLI ile Yayımlama bölümündeki yönergeleri izleyerek el ile yayımlamanız gerekir. Daha fazla bilgi için bkz . .NET CLI ile .NET uygulamalarını yayımlama.

Ayrıca bkz.