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:
Maak een uitgeversbeleidsbestand.
Maak een uitgeversbeleidsassembly.
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.