Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Ç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
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>
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 publish
olarak 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
Çö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ü
Oluştur>YayımlaSeç.
Visual Studio'da Kırpılmış Yayımlama seçeneğiyle yayımlama sayfası
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 . Visual Studio ile .NET Core uygulamaları yayımlama.
Ayrıca bkz.
- .NET Core uygulama dağıtımı.
- .NET CLI ile .NET uygulamaları yayımlama.
- Visual Studio ile .NET Core uygulamaları yayımlama.
- dotnet publish komutu.