bağlayıcıyı ASP.NET Çekirdek için yapılandırma Blazor
Bu makalede, uygulama oluştururken Blazor Ara Dil (IL) Bağlayıcısının nasıl denetlenecekleri açıklanmaktadır.
Blazor WebAssembly uygulamanın çıkış derlemelerinden gereksiz IL'yi kırpmak için derleme sırasında Ara Dil (IL) bağlaması gerçekleştirir. Bağlayıcı Hata ayıklama yapılandırmasında oluşturulurken devre dışı bırakılır. Bağlayıcıyı etkinleştirmek için uygulamaların Yayın yapılandırmasında derlenmelidir. Uygulamalarınızı dağıtırken Yayın'da derlemenizi Blazor WebAssembly öneririz.
Bir uygulamanın bağlanması boyut açısından iyileştirir, ancak zarar verici etkileri olabilir. Bağlayıcı bu dinamik davranışı bilmediğinden ve çalışma zamanında yansıma için hangi türlerin gerekli olduğunu genel olarak belirleyemediğinden, yansıma veya ilgili dinamik özellikleri kullanan uygulamalar kırpıldığında bozulabilir. Bu tür uygulamaları kırpmak için bağlayıcının kodda ve uygulamanın bağımlı olduğu paketlerde veya çerçevelerde yansımanın gerektirdiği türler hakkında bilgilendirilmesi gerekir.
Kırpılan uygulamanın dağıtıldıktan sonra düzgün çalıştığından emin olmak için geliştirme sırasında uygulamanın Yayın derlemelerini sık sık test etmek önemlidir.
Uygulamalar için Blazor bağlama şu MSBuild özellikleri kullanılarak yapılandırılabilir:
- MSBuild özelliğiyle genel olarak bağlamayı yapılandırın.
- Yapılandırma dosyasıyla derleme başına bağlamayı denetleme.
MSBuild özelliğiyle bağlantı denetimi
Bir uygulama Release
yerleşik olarak yapılandırıldığında bağlama etkinleştirilir. Bunu değiştirmek için proje dosyasında MSBuild özelliğini yapılandırın BlazorWebAssemblyEnableLinking
:
<PropertyGroup>
<BlazorWebAssemblyEnableLinking>false</BlazorWebAssemblyEnableLinking>
</PropertyGroup>
Yapılandırma dosyasıyla bağlamayı denetleme
XML yapılandırma dosyası sağlayarak ve dosyayı proje dosyasında MSBuild öğesi olarak belirterek derleme başına bağlamayı denetleyin:
<ItemGroup>
<BlazorLinkerDescriptor Include="LinkerConfig.xml" />
</ItemGroup>
LinkerConfig.xml
:
<?xml version="1.0" encoding="UTF-8" ?>
<!--
This file specifies which parts of the BCL or Blazor packages must not be
stripped by the IL Linker even if they aren't referenced by user code.
-->
<linker>
<assembly fullname="mscorlib">
<!--
Preserve the methods in WasmRuntime because its methods are called by
JavaScript client-side code to implement timers.
Fixes: https://github.com/dotnet/blazor/issues/239
-->
<type fullname="System.Threading.WasmRuntime" />
</assembly>
<assembly fullname="System.Core">
<!--
System.Linq.Expressions* is required by Json.NET and any
expression.Compile caller. The assembly isn't stripped.
-->
<type fullname="System.Linq.Expressions*" />
</assembly>
<!--
In this example, the app's entry point assembly is listed. The assembly
isn't stripped by the IL Linker.
-->
<assembly fullname="MyCoolBlazorApp" />
</linker>
Daha fazla bilgi ve örnek için bkz . Veri Biçimleri (dotnet/runtime
GitHub deposu).
Kitaplığa XML bağlayıcı yapılandırma dosyası ekleme
Bağlayıcıyı belirli bir kitaplık için yapılandırmak için, kitaplığa ekli kaynak olarak bir XML bağlayıcı yapılandırma dosyası ekleyin. Katıştırılmış kaynağın adı derlemeyle aynı olmalıdır.
Aşağıdaki örnekte dosya, kitaplığın LinkerConfig.xml
derlemesi ile aynı ada sahip bir ekli kaynak olarak belirtilir:
<ItemGroup>
<EmbeddedResource Include="LinkerConfig.xml">
<LogicalName>$(MSBuildProjectName).xml</LogicalName>
</EmbeddedResource>
</ItemGroup>
Bağlayıcıyı uluslararası hale getirme için yapılandırma
Blazor'nin uygulamalar için Blazor WebAssembly bağlayıcı yapılandırması, açıkça istenen yerel ayarlar dışında uluslararasılaştırma bilgilerini çıkarır. Bu derlemelerin kaldırılması uygulamanın boyutunu en aza indirir.
Hangi I18N derlemelerinin tutulacaklarını denetlemek için proje dosyasında MSBuild özelliğini ayarlayın <BlazorWebAssemblyI18NAssemblies>
:
<PropertyGroup>
<BlazorWebAssemblyI18NAssemblies>{all|none|REGION1,REGION2,...}</BlazorWebAssemblyI18NAssemblies>
</PropertyGroup>
Bölge Değeri | Mono bölge derlemesi |
---|---|
all |
Dahil edilen tüm derlemeler |
cjk |
I18N.CJK.dll |
mideast |
I18N.MidEast.dll |
none (varsayılan) |
Hiçbiri |
other |
I18N.Other.dll |
rare |
I18N.Rare.dll |
west |
I18N.West.dll |
Birden çok değeri ayırmak için virgül kullanın (örneğin, mideast,west
).
Daha fazla bilgi için bkz . I18N: Pnetlib Uluslararasılaştırma Çerçevesi Kitaplığı (mono/mono GitHub deposu).
Ek kaynaklar
ASP.NET Core