Share via


Procedure: Een uitgeversbeleid maken

Notitie

Dit artikel is specifiek voor .NET Framework. Dit geldt niet voor nieuwere implementaties van .NET, waaronder .NET 6 en nieuwere versies.

Leveranciers van assembly's kunnen aangeven dat toepassingen een nieuwere versie van een assembly moeten gebruiken door een uitgeversbeleidsbestand met de bijgewerkte assembly op te slaan. In het uitgeversbeleidsbestand worden assembly-omleidings- en codebasisinstellingen opgegeven en wordt dezelfde indeling gebruikt als een toepassingsconfiguratiebestand. Het uitgeversbeleidsbestand wordt gecompileerd in een assembly en in de globale assemblycache geplaatst.

Er zijn drie stappen betrokken bij het maken van een uitgeversbeleid:

  1. Maak een uitgeversbeleidsbestand.

  2. Maak een uitgeversbeleidsassembly.

  3. Voeg de uitgeversbeleidsassembly toe aan de algemene assemblycache.

Het schema voor uitgeversbeleid wordt beschreven in Omleidingsassemblyversies. In het volgende voorbeeld ziet u een uitgeversbeleidsbestand waarmee de ene versie van de ene versie naar myAssembly de andere wordt omgeleid.

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

Zie Locatie van een assembly opgeven voor meer informatie over het opgeven van een codebasis.

De Publisher Policy Assembly maken

Gebruik de Assembly Linker (Al.exe) om de assembly voor uitgeversbeleid te maken.

Een assembly voor uitgeversbeleid maken

Typ de volgende opdracht bij de opdrachtprompt:

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

In deze opdracht:

  • Het publisherPolicyFile argument is de naam van het uitgeversbeleidsbestand.

  • Het publisherPolicyAssemblyFile argument is de naam van de uitgeversbeleidsassembly die het resultaat is van deze opdracht. De naam van het assemblybestand moet de indeling volgen:

    'policy.majorNumber.minorNumber.mainAssemblyName.dll'

  • Het keyPairFile argument is de naam van het bestand dat het sleutelpaar bevat. U moet de assembly en de uitgeversbeleidsassembly ondertekenen met hetzelfde sleutelpaar.

  • Het processorArchitecture argument identificeert het platform waarop een processorspecifieke assembly is gericht.

    Notitie

    De mogelijkheid om een specifieke processorarchitectuur te richten, is beschikbaar vanaf .NET Framework 2.0.

De mogelijkheid om een specifieke processorarchitectuur te richten, is beschikbaar vanaf .NET Framework 2.0. Met de volgende opdracht maakt u een uitgeversbeleidsassembly die wordt aangeroepen policy.1.0.myAssembly op basis van een uitgeversbeleidsbestand met de naam pub.config, wijst u een sterke naam toe aan de assembly met behulp van het sleutelpaar in het sgKey.snk bestand en geeft u op dat de assembly is gericht op de x86-processorarchitectuur.

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

De uitgeverbeleidsassembly moet overeenkomen met de processorarchitectuur van de assembly waarop deze van toepassing is. Als uw assembly dus een ProcessorArchitecture waarde heeft, MSILmoet de assembly van het uitgeverbeleid voor die assembly worden gemaakt met /platform:anycpu. U moet een afzonderlijke assembly voor uitgeversbeleid opgeven voor elke processorspecifieke assembly.

Een gevolg van deze regel is dat u, om de processorarchitectuur voor een assembly te wijzigen, het primaire of secundaire onderdeel van het versienummer moet wijzigen, zodat u een nieuwe uitgeversbeleidsassembly kunt opgeven met de juiste processorarchitectuur. De oude uitgeversbeleidsassembly kan uw assembly niet onderhouden zodra uw assembly een andere processorarchitectuur heeft.

Een ander gevolg is dat de versie 2.0-linker niet kan worden gebruikt om een uitgeversbeleidsassembly te maken voor een assembly die is gecompileerd met eerdere versies van .NET Framework, omdat deze altijd processorarchitectuur specificeert.

De publisher-beleidsassembly toevoegen aan de algemene assemblycache

Gebruik het hulpprogramma Global Assembly Cache (Gacutil.exe) om de assembly van het uitgeversbeleid toe te voegen aan de algemene assemblycache.

De uitgeverbeleidsassembly toevoegen aan de algemene assemblycache

Typ de volgende opdracht bij de opdrachtprompt:

gacutil /i publisherPolicyAssemblyFile

Met de volgende opdracht wordt de globale assemblycache toegevoegd policy.1.0.myAssembly.dll .

gacutil /i policy.1.0.myAssembly.dll

Belangrijk

De assembly van het uitgeversbeleid kan niet worden toegevoegd aan de algemene assemblycache, tenzij het oorspronkelijke uitgeversbeleidsbestand dat is opgegeven in het /link argument zich in dezelfde map bevindt als de assembly.

Zie ook