Configurez l’éditeur de liens pour ASP.NET Core [!OP.NO-LOC(Blazor)]Configure the Linker for ASP.NET Core [!OP.NO-LOC(Blazor)]

Par Luke LathamBy Luke Latham

Important

Blazor webassembly en préversionBlazor WebAssembly in preview

Blazor Server est pris en charge dans ASP.net Core 3,0.Blazor Server is supported in ASP.NET Core 3.0. Blazor Webassembly est en version préliminaire pour ASP.net Core 3,1.Blazor WebAssembly is in preview for ASP.NET Core 3.1.

[!OP.NO-LOC(Blazor)] effectue une liaison il (Intermediate Language) au cours d’une génération pour supprimer l’il inutile des assemblys de sortie de l’application. performs Intermediate Language (IL) linking during a build to remove unnecessary IL from the app's output assemblies.

Contrôlez la liaison d’assembly avec l’une des approches suivantes :Control assembly linking using either of the following approaches:

Désactiver la liaison avec une propriété MSBuildDisable linking with a MSBuild property

La liaison est activée par défaut lors de la génération d’une application, ce qui comprend la publication.Linking is enabled by default when an app is built, which includes publishing. Pour désactiver la liaison pour tous les assemblys, définissez la propriété MSBuild BlazorLinkOnBuild sur false dans le fichier projet :To disable linking for all assemblies, set the BlazorLinkOnBuild MSBuild property to false in the project file:

<PropertyGroup>
  <BlazorLinkOnBuild>false</BlazorLinkOnBuild>
</PropertyGroup>

Contrôler la liaison avec un fichier de configurationControl linking with a configuration file

Contrôlez la liaison pour chaque assembly en fournissant un fichier de configuration XML et en spécifiant le fichier en tant qu’élément MSBuild dans le fichier projet :Control linking on a per-assembly basis by providing an XML configuration file and specifying the file as a MSBuild item in the project file:

<ItemGroup>
  <BlazorLinkerDescriptor Include="Linker.xml" />
</ItemGroup>

Linker.xml :Linker.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!--
  This file specifies which parts of the BCL or [!OP.NO-LOC(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>

Pour plus d’informations, consultez l' éditeur de liens il : syntaxe du descripteur XML.For more information, see IL Linker: Syntax of xml descriptor.

Configurer l’éditeur de liens pour l’internationalisationConfigure the linker for internationalization

Par défaut, la configuration de l’éditeur de liens de [!OP.NO-LOC(Blazor)]pour les applications webassembly [!OP.NO-LOC(Blazor)] supprime les informations d’internationalisation, à l’exception des paramètres régionaux demandés explicitement.By default, [!OP.NO-LOC(Blazor)]'s linker configuration for [!OP.NO-LOC(Blazor)] WebAssembly apps strips out internationalization information except for locales explicitly requested. La suppression de ces assemblys réduit la taille de l’application.Removing these assemblies minimizes the app's size.

Pour contrôler les assemblys I18N qui sont conservés, définissez la <MonoLinkerI18NAssemblies> propriété MSBuild dans le fichier projet :To control which I18N assemblies are retained, set the <MonoLinkerI18NAssemblies> MSBuild property in the project file:

<PropertyGroup>
  <MonoLinkerI18NAssemblies>{all|none|REGION1,REGION2,...}</MonoLinkerI18NAssemblies>
</PropertyGroup>
Valeur de la régionRegion Value Assembly de région monoMono region assembly
all Tous les assemblys inclusAll assemblies included
cjk I18n. CJK. dllI18N.CJK.dll
mideast I18n. MidEast. dllI18N.MidEast.dll
none (par défaut)none (default) NoneNone
other I18n. Other. dllI18N.Other.dll
rare I18n. Rare. dllI18N.Rare.dll
west I18n. West. dllI18N.West.dll

Utilisez une virgule pour séparer plusieurs valeurs (par exemple, mideast,west).Use a comma to separate multiple values (for example, mideast,west).

Pour plus d’informations, consultez i18n : Pnetlib internationalisation Framework Library (référentiel mono/mono GitHub).For more information, see I18N: Pnetlib Internationalization Framework Library (mono/mono GitHub repository).