Sdílet prostřednictvím


Postupy: Vytváření zásad vydavatele

Poznámka:

Tento článek je specifický pro rozhraní .NET Framework. Nevztahuje se na novější implementace .NET, včetně .NET 6 a novějších verzí.

Dodavatelé sestavení mohou uvést, že aplikace by měly používat novější verzi sestavení zahrnutím souboru zásad vydavatele s upgradovaným sestavením. Soubor zásad vydavatele určuje přesměrování sestavení a základní nastavení kódu a používá stejný formát jako konfigurační soubor aplikace. Soubor zásad vydavatele je zkompilován do sestavení a umístěn v globální mezipaměti sestavení.

Vytváření zásad vydavatele zahrnuje tři kroky:

  1. Vytvořte soubor zásad vydavatele.

  2. Vytvořte sestavení zásad vydavatele.

  3. Přidejte sestavení zásad vydavatele do globální mezipaměti sestavení.

Schéma zásad vydavatele je popsáno v části Přesměrování verzí sestavení. Následující příklad ukazuje soubor zásad vydavatele, který přesměruje jednu verzi myAssembly na jinou.

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
       <dependentAssembly>
         <assemblyIdentity name="myAssembly"
                           publicKeyToken="32ab4ba45e0a69a1"
                           culture="en-us" />
         <!-- Redirecting to version 2.0.0.0 of the assembly. -->
         <bindingRedirect oldVersion="1.0.0.0"
                          newVersion="2.0.0.0"/>
       </dependentAssembly>
      </assemblyBinding>
   </runtime>
</configuration>

Informace o určení základu kódu najdete v tématu Určení umístění sestavení.

Vytvoření sestavení zásad vydavatele

Pomocí linkeru sestavení (Al.exe) vytvořte sestavení zásad vydavatele.

Vytvoření sestavení zásad vydavatele

Na příkazovém řádku zadejte následující příkaz:

al /link:publisherPolicyFile /out:publisherPolicyAssemblyFile /keyfile:keyPairFile /platform:processorArchitecture

V tomto příkazu:

  • Argument publisherPolicyFile je název souboru zásad vydavatele.

  • Argument publisherPolicyAssemblyFile je název sestavení zásad vydavatele, které je výsledkem tohoto příkazu. Název souboru sestavení musí odpovídat formátu:

    "policy.majorNumber.minorNumber.mainAssemblyName.dll"

  • Argumentem keyPairFile je název souboru obsahujícího pár klíčů. Sestavení a sestavení zásad vydavatele musíte podepsat pomocí stejné dvojice klíčů.

  • Argument processorArchitecture identifikuje platformu, na kterou cílí sestavení specifické pro procesor.

    Poznámka:

    Schopnost cílit na konkrétní architekturu procesoru je dostupná od rozhraní .NET Framework 2.0.

Schopnost cílit na konkrétní architekturu procesoru je dostupná od rozhraní .NET Framework 2.0. Následující příkaz vytvoří sestavení zásad vydavatele volané policy.1.0.myAssembly ze souboru zásad vydavatele s názvem pub.config, přiřadí sestavení silný název sestavení pomocí páru klíčů v sgKey.snk souboru a určuje, že sestavení cílí na architekturu procesoru x86.

al /link:pub.config /out:policy.1.0.myAssembly.dll /keyfile:sgKey.snk /platform:x86

Sestavení zásad vydavatele musí odpovídat architektuře procesoru sestavení, na které se vztahuje. Pokud tedy sestavení má ProcessorArchitecture hodnotu MSIL, sestavení zásad vydavatele pro toto sestavení musí být vytvořeno s /platform:anycpu. Pro každé sestavení specifické pro procesor je nutné zadat samostatné sestavení zásad vydavatele.

Důsledkem tohoto pravidla je, že pokud chcete změnit architekturu procesoru pro sestavení, musíte změnit hlavní nebo podverzi čísla verze, abyste mohli zadat nové sestavení zásad vydavatele se správnou architekturou procesoru. Sestavení starých zásad vydavatele nemůže sestavení obsluhovat, jakmile má sestavení jinou architekturu procesoru.

Dalším důsledkem je, že linker verze 2.0 nelze použít k vytvoření sestavení zásad vydavatele pro sestavení kompilované pomocí starších verzí rozhraní .NET Framework, protože vždy určuje architekturu procesoru.

Přidání sestavení zásad vydavatele do globální mezipaměti sestavení

Pomocí nástroje Globální mezipaměť sestavení (Gacutil.exe) přidejte sestavení zásad vydavatele do globální mezipaměti sestavení.

Přidání sestavení zásad vydavatele do globální mezipaměti sestavení

Na příkazovém řádku zadejte následující příkaz:

gacutil /i publisherPolicyAssemblyFile

Následující příkaz přidá policy.1.0.myAssembly.dll do globální mezipaměti sestavení.

gacutil /i policy.1.0.myAssembly.dll

Důležité

Sestavení zásad vydavatele nelze přidat do globální mezipaměti sestavení, pokud původní soubor zásad vydavatele zadaný v argumentu /link není umístěn ve stejném adresáři jako sestavení.

Viz také