Megosztás a következőn keresztül:


A Linker konfigurálása ASP.NET Core-hoz Blazor

Ez a cikk bemutatja, hogyan vezérelheti az ügyféloldali forgatókönyvek köztes nyelv (IL) linkerét egy Blazor alkalmazás létrehozásakor.

Blazor WebAssembly Köztes nyelvi (IL) csatolást hajt végre a build során, hogy az alkalmazás kimeneti szerelvényeiből levágja a szükségtelen IL-t. A linker le van tiltva, amikor Debug konfigurációban épít. Az alkalmazásokat kiadási konfigurációban kell felépíteni a linkelés engedélyezéséhez. Az alkalmazások üzembe helyezésekor javasoljuk, hogy a Blazor WebAssembly alkalmazásokat Kiadás módban fordítsa.

Egy alkalmazás összekapcsolása méret szempontjából optimalizált, de káros hatásokkal járhat. A tükrözést vagy kapcsolódó dinamikus funkciókat használó alkalmazások megszakadhatnak, ha levágják, mert a linker nem tud erről a dinamikus viselkedésről, és általában nem tudja meghatározni, hogy mely típusok szükségesek a futásidőben történő tükrözéshez. Az ilyen alkalmazások vágásához a linkert tájékoztatni kell a kódban és az alkalmazás által használt csomagokban vagy keretrendszerekben való tükröződés által megkövetelt típusokról.

Annak érdekében, hogy a csökkentett méretű alkalmazás megfelelően működjön az üzembe helyezés után, fontos, hogy a fejlesztés során gyakran tesztelje az alkalmazás release buildjeit.

Az alkalmazások összekapcsolása Blazor az alábbi MSBuild-funkciókkal konfigurálható:

MSBuild tulajdonsággal való összekapcsolás vezérlése

Alapértelmezés szerint a csatolás engedélyezve van, ha egy alkalmazás beépített konfigurációban Release van. A csatolás letiltásához konfigurálja az BlazorWebAssemblyEnableLinking MSBuild tulajdonságot a projektfájlban:

<PropertyGroup>
  <BlazorWebAssemblyEnableLinking>false</BlazorWebAssemblyEnableLinking>
</PropertyGroup>

Konfigurációs fájllal való csatolás vezérlése

A szerelvényenkénti csatolás szabályozásához adjon meg egy XML-konfigurációs fájlt, és adja meg a fájlt MSBuild elemként a projektfájlban:

<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>

További információkért és példákért lásd: Adatformátumok (dotnet/runtime GitHub-adattár).

Adjon hozzá egy XML csatoló konfigurációs fájlt a könyvtárhoz

Ha egy adott tárhoz szeretné konfigurálni a hivatkozáskezelőt, beágyazott erőforrásként adjon hozzá egy XML-csatoló konfigurációs fájlt a tárhoz. A beágyazott erőforrásnak ugyanazzal a névvel kell rendelkeznie, mint a szerelvénynek.

A következő példában a LinkerConfig.xml fájl beágyazott erőforrásként van megadva, amelynek neve megegyezik az erőforrástár szerelvényével:

<ItemGroup>
  <EmbeddedResource Include="LinkerConfig.xml">
    <LogicalName>$(MSBuildProjectName).xml</LogicalName>
  </EmbeddedResource>
</ItemGroup>

A linker konfigurálása nemzetköziesítéshez

Blazor linker konfigurációja a Blazor WebAssembly alkalmazásokhoz eltávolítja a nemzetközivé tétel információit, kivéve azokat a területi beállításokat, amelyeket kifejezetten kértek. Ezeknek a szerelvényeknek a eltávolítása minimálisra csökkenti az alkalmazás méretét.

Az I18N-szerelvények megőrzésének szabályozásához állítsa be az <BlazorWebAssemblyI18NAssemblies> MSBuild tulajdonságot a projektfájlban:

<PropertyGroup>
  <BlazorWebAssemblyI18NAssemblies>{all|none|REGION1,REGION2,...}</BlazorWebAssemblyI18NAssemblies>
</PropertyGroup>
Régió értéke Monorégió gyűlés
all Minden szerelvény bele van foglalva
cjk I18N.CJK.dll
mideast I18N.MidEast.dll
none (alapértelmezett) None
other I18N.Other.dll
rare I18N.Rare.dll
west I18N.West.dll

Több érték (például mideast,west) elválasztásához használjon vesszőt.

További információért lásd I18N: Pnetlib Internationalization Framework Library (mono/mono GitHub-adattár).

További erőforrások