ASP.NET Core için bağlayıcı yapılandırma Blazor
Blazor WebAssembly uygulamanın çıkış derlemelerinden gereksiz Il 'yi kırpmak için bir derleme sırasında ara dil (IL) bağlamayı gerçekleştirir. Hata ayıklama yapılandırmasında oluşturulurken bağlayıcı devre dışı bırakıldı. Bağlayıcı etkinleştirmek için uygulamaların yayın yapılandırmasında derlenmesi gerekir. Uygulamalarınızı dağıttığınızda yayında derleme yapmanızı öneririz Blazor WebAssembly .
Uygulama bağlama boyutu için en iyi duruma getirir, ancak bu etkilere sebep olabilir. Bağlayıcı bu dinamik davranışı öğrenmediği ve çalışma zamanında yansıma için hangi türlerin gerekli olduğunu belirleyemediği için yansıma veya ilgili dinamik özellikleri kullanan uygulamalar kırpılmayabilir. Bu tür uygulamaları kırpmak için bağlayıcı, koddaki yansıma tarafından gerek duyulan herhangi bir tür ve uygulamanın bağımlı olduğu paketler veya çerçeveler hakkında bilgilendirmelidir.
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 test etmek önemlidir.
uygulamalar için bağlama Blazor , bu MSBuild özellikleri kullanılarak yapılandırılabilir:
- MSBuild özelliğiile genel olarak bağlamayı yapılandırın.
- Yapılandırma dosyasıile derleme temelinde bağlama denetimi.
MSBuild özelliği ile bağlamayı denetleme
Bir uygulama yapılandırmada derlenmediğinde bağlama etkinleştirilir Release . bunu değiştirmek için, BlazorWebAssemblyEnableLinking proje dosyasında MSBuild özelliğini yapılandırın:
<PropertyGroup>
<BlazorWebAssemblyEnableLinking>false</BlazorWebAssemblyEnableLinking>
</PropertyGroup>
Yapılandırma dosyası ile bağlamayı denetleme
bir XML yapılandırma dosyası sağlayarak ve dosyayı proje dosyasında MSBuild bir öğe olarak belirterek derleme temelinde bağlama denetimi yapın:
<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 (mono/bağlayıcı GitHub deposu).
Kitaplığa bir 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 katıştırılmış kaynak olarak bir XML bağlayıcı yapılandırma dosyası ekleyin. Katıştırılmış kaynak, derlemeyle aynı ada sahip olmalıdır.
Aşağıdaki örnekte, LinkerConfig.xml Dosya, kitaplığın derlemesi ile aynı ada sahip gömülü bir kaynak olarak belirtilir:
<ItemGroup>
<EmbeddedResource Include="LinkerConfig.xml">
<LogicalName>$(MSBuildProjectName).xml</LogicalName>
</EmbeddedResource>
</ItemGroup>
Bağlayıcıyı uluslararası duruma getirme için yapılandırma
Varsayılan olarak, Blazor uygulamalar için bağlayıcı yapılandırması, Blazor WebAssembly açıkça istenen yerel ayarlar dışında uluslararası duruma getirme bilgilerini kaldırır. Bu derlemelerin kaldırılması uygulamanın boyutunu en aza indirir.
hangi I18N derlemelerinin korunacağını denetlemek için, <BlazorWebAssemblyI18NAssemblies> proje dosyasında MSBuild özelliğini ayarlayın:
<PropertyGroup>
<BlazorWebAssemblyI18NAssemblies>{all|none|REGION1,REGION2,...}</BlazorWebAssemblyI18NAssemblies>
</PropertyGroup>
| Bölge değeri | Mono bölgesi derlemesi |
|---|---|
all |
Tüm derlemeler dahil |
cjk |
I18N.CJK.dll |
mideast |
I18N.MidEast.dll |
none varsayılanını |
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ı duruma getirme çerçeve kitaplığı (mono/mono GitHub deposu).