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

Framework 'e bağımlı dağıtım modeli , .net 'in başlangıcından bu yana en başarılı dağıtım modelidir. Bu senaryoda, uygulama geliştiricisi yalnızca, .NET çalışma zamanı ve çalışma zamanı kitaplıklarının istemci makinesinde kullanılabilir olacağı beklentisiyle yalnızca uygulamayı ve üçüncü taraf derlemeleri paketler. Bu dağıtım modeli, en son .NET sürümünde baskın bir sürüm olmaya devam etmektedir, ancak çerçeveye bağımlı modelin en iyi seçenek olmadığı bazı senaryolar vardır. Alternatif olarak, .NET çalışma zamanı ve çalışma zamanı kitaplıklarının uygulama ve üçüncü taraf Derlemeleriyle birlikte paketlenmiş olduğu, kendi kendine içerilen bir uygulamayayımlamaktır.

Kırpma Self-içerilen dağıtım modeli, dağıtım boyutunu azaltmak için optimize edilmiş, kendine dahil edilen dağıtım modelinin özelleşmiş 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, yalnızca çerçeve derlemelerinin bir alt kümesine başvurulur ve uygulamayı çalıştırmak için her derleme içindeki kodun bir alt kümesi gereklidir. Kitaplıkların kullanılmayan bölümleri gereksizdir ve paketlenmiş uygulamadan kırpılabilecek.

Bununla birlikte, uygulamanın derleme zamanı analizinin çalışma zamanında hatalara neden olabileceği ve çok sayıda sorunlu kod desenlerini güvenilir bir şekilde çözümleyemedikleri için (büyük ölçüde yansıma kullanımı üzerinde ortalandı) bir risk vardır. Bu sorunları azaltmak için, ayarlayıcısı bir kod deseninin tamamen çözümlenmesi her zaman uyarılar üretilir. Kırpma uyarılarının ne anlama geldiğini ve bunların nasıl çözümleneceğini öğrenmek için bkz. kırpma uyarılarını giriş.

Not

Kırpma yalnızca .NET 6 + ' da desteklenir.

Kırpma sorunlarına neden olan bileşenler

Derleme zamanı çözümleme güçlüklerine neden olan tüm kodlar kırpma için uygun değildir. Bir uygulama tarafından kullanılan sorunlu bazı yaygın kodlama desenleri, zaman sınırlandırılmamış yansıma kullanımı ve derleme zamanında görünmeyen dış bağımlılıklardır. Sınırlandırılmamış yansıma örneği, XML serileştirme gibi eski bir seri hale getirici ve görünmeyen dış bağımlılıkların bir ÖRNEĞI yerleşik com' dur. Bilinen uyumsuzluklar için bkz. bilinen kırpma uyumsuzlukları. Uygulamanızdaki kırpma uyarılarını ele almak için bkz. uyarıları kırpmaya girişve kitaplığı kırpma ile uyumlu hale getirme, bkz. .net kitaplıklarını kırpma için hazırlama.

Kırpma etkinleştiriliyor

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

    Bu, kendine dahil olan yayımda kırpılan bir uygulama oluşturur. Ayrıca, kırpılıp uyumsuz özellikleri devre dışı bırakır ve derleme sırasında kırpma uyumluluk uyarılarını gösterir.

    <PropertyGroup>
        <PublishTrimmed>true</PublishTrimmed>
    </PropertyGroup>
    
  2. Ardından DotNet Publish komutunu veya Visual Studio kullanarak uygulamanızı yayımlayın.

CLı ile yayımlama

aşağıdaki örnek, Windows için uygulamayı kırpılan bağımsız bir uygulama olarak yayımlar.

dotnet publish -r win-x64

Kırpma yalnızca kendi içindeki uygulamalar için desteklenir.

<PublishTrimmed> , kırpma uyumsuz özelliklerin devre dışı bırakılması için proje dosyasında ayarlanmalıdır dotnet build , ancak bu seçenekleri bağımsız değişken olarak geçirmek de mümkündür dotnet publish :

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 bölmesinde, yayımlamak istediğiniz projeye sağ tıklayın. Yayımla ' yı seçin.. .

    Yayımla seçeneğini vurgulayan sağ tıklama menüsüyle Çözüm Gezgini.

    Zaten bir yayımlama profiliniz yoksa, bir tane oluşturmak için yönergeleri izleyin ve hedef türü klasörünü seçin.

  2. Düzenle' yi seçin.

    Visual Studio Profili Düzenle düğmesi ile Yayımla.

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

    • Dağıtım modunu kendi kendine dahil olarak ayarlayın.
    • Hedef çalışma zamanını , yayımlamak istediğiniz platforma ayarlayın.
    • Kullanılmayan derlemeleri Kırp (önizlemede) seçeneğini belirleyin.

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

    Dağıtım modu, hedef çalışma zamanı ve kullanılmayan derlemeleri Kırp seçeneklerinin vurgulandığı profil ayarları iletişim kutusu.

  4. Uygulamanızı yayımlamak için Yayımla ' yı seçin.

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

Mac için Visual Studio ile yayımlama

Mac için Visual Studio uygulamanızı yayımlamak için seçenek sağlamıyor. 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.