Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este artigo explica como controlar o vinculador de linguagem intermediária (IL) para cenários do lado do cliente ao criar um Blazor aplicativo.
Blazor WebAssembly executa a vinculação de linguagem intermediária (IL) durante uma compilação para cortar IL desnecessário dos assemblies de saída do aplicativo. O ligador é desativado ao compilar na configuração de Debug. Os aplicativos devem ser compilados na configuração Release para habilitar o vinculador. Recomendamos criar em Release ao implantar seus Blazor WebAssembly aplicativos.
A vinculação de um aplicativo otimiza o tamanho, mas pode ter efeitos prejudiciais. Os aplicativos que usam reflexão ou recursos dinâmicos relacionados podem quebrar quando cortados porque o vinculador não sabe sobre esse comportamento dinâmico e não pode determinar em geral quais tipos são necessários para reflexão em tempo de execução. Para cortar esses aplicativos, o vinculador deve ser informado sobre quaisquer tipos exigidos pela reflexão no código e em pacotes ou estruturas dos quais o aplicativo depende.
Para garantir que a aplicação reduzida funcione corretamente depois de implantada, é importante testar frequentemente as versões de produção da aplicação durante o desenvolvimento.
A vinculação para Blazor aplicativos pode ser configurada usando estes recursos do MSBuild:
- Configure a vinculação globalmente com uma propriedade MSBuild.
- Controle a vinculação por montagem com um arquivo de configuração.
Controlar a vinculação com uma propriedade MSBuild
Por padrão, a vinculação é habilitada quando um aplicativo é criado na Release configuração. Para desabilitar a vinculação, configure a BlazorWebAssemblyEnableLinking propriedade MSBuild no arquivo de projeto:
<PropertyGroup>
<BlazorWebAssemblyEnableLinking>false</BlazorWebAssemblyEnableLinking>
</PropertyGroup>
Controlar a vinculação com um arquivo de configuração
Controle a ligação por montagem fornecendo um ficheiro de configuração XML e especificando o ficheiro como um item do MSBuild no ficheiro de projeto:
<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>
Para obter mais informações e exemplos, consulte Formatos de dados (dotnet/runtimerepositório GitHub).
Adicionar um arquivo de configuração do vinculador XML a uma biblioteca
Para configurar o vinculador para uma biblioteca específica, adicione um arquivo de configuração do vinculador XML à biblioteca como um recurso incorporado. O recurso incorporado deve ter o mesmo nome que a montagem.
No exemplo a seguir, o LinkerConfig.xml arquivo é especificado como um recurso incorporado que tem o mesmo nome que o assembly da biblioteca:
<ItemGroup>
<EmbeddedResource Include="LinkerConfig.xml">
<LogicalName>$(MSBuildProjectName).xml</LogicalName>
</EmbeddedResource>
</ItemGroup>
Configurar o vinculador para internacionalização
BlazorA configuração do vinculador do para Blazor WebAssembly aplicativos elimina as informações de internacionalização, exceto para localidades explicitamente solicitadas. A remoção desses assemblies minimiza o tamanho do aplicativo.
Para controlar quais assemblies I18N são mantidos, defina a <BlazorWebAssemblyI18NAssemblies> propriedade MSBuild no arquivo de projeto:
<PropertyGroup>
<BlazorWebAssemblyI18NAssemblies>{all|none|REGION1,REGION2,...}</BlazorWebAssemblyI18NAssemblies>
</PropertyGroup>
| Valor da região | Assembleia da região de Mono |
|---|---|
all |
Todas as montagens incluídas |
cjk |
I18N.CJK.dll |
mideast |
I18N.MidEast.dll |
none (padrão) |
None |
other |
I18N.Other.dll |
rare |
I18N.Rare.dll |
west |
I18N.West.dll |
Use uma vírgula para separar vários valores (por exemplo, mideast,west).
Para obter mais informações, consulte I18N: Pnetlib Internationalization Framework Library (repositório GitHub mono/mono).