Configuratiebestanden van Publisher
Een configuratiebestand voor uitgevers is een XML-bestand dat toepassingen en assembly's globaal omleidt van het gebruik van één versie van een assembly naast elkaar naar een andere versie van dezelfde assembly. Normaal gesproken geeft de uitgever van de assembly een compatibele update of beveiligingsoplossing per assembly uit door een uitgeverconfiguratiebestand uit te geven dat samen met een servicepack-update moet worden geïnstalleerd. Dit wordt configuratie van uitgevers genoemd. Zie Publisher Configuration voor meer informatie over dit type configuratie .
Publisher-configuratiebestanden hebben de volgende elementen en kenmerken. Zie Publisher Configuration File Schemavoor een volledige lijst van het XML-schema.
Element | Kenmerken | Vereist |
---|---|---|
assembly- | Ja | |
manifestVersion- | Ja | |
assemblyIdentity- | Ja | |
type | Ja | |
naam | Ja | |
taal | Nee | |
processorArchitecture | Nee | |
versie | Ja | |
publicKeyToken- | Nee | |
afhankelijkheid | Nee | |
dependentAssembly- | Nee | |
bindingRedirect- | Ja | |
oldVersion- | Ja | |
newVersion- | Ja |
Bestandslocatie
Publisher-configuratiebestanden moeten worden geïnstalleerd in de Map WinSxS. Ze worden meestal geïnstalleerd als een afzonderlijk bestand, maar configuratiebestanden van uitgevers kunnen ook worden opgenomen als een resource in een DLL. Een configuratiebestand van een uitgever kan niet worden opgenomen als een resource in een EXE-bestand. Een EXE-bestand kan een toepassingsmanifest bevatten als een resource.
Syntaxis van bestandsnaam
De bestandsnaam van een configuratiebestand van een uitgever heeft het formulier beleid.primaire.kleine.assemblynaam waarbij primaire en secundaire verwijzen naar de belangrijkste en secundaire onderdelen van de assemblyversie die worden beïnvloed. De assemblynaam verwijst naar de naam van de assembly.
Bijvoorbeeld een configuratiebestand voor uitgevers voor versie 6.0 van Microsoft.Windows.Common-Controls assembly zou de volgende naam hebben:
- policy.6.0.Microsoft.Windows.Common-Controls
Gebruik geen beleidsconfiguratiebestanden om de primaire of secundaire versie van een assembly te verhogen. Stuur bijvoorbeeld versie 6.0.0.0.0 niet om naar 7.0.0.0 of 6.1.0.0. Wanneer een toepassing verwijst naar een assemblyversie, zoals 6.0.0.0, wordt naast elkaar gecontroleerd op de aanwezigheid van beleidsconfiguratiebestanden met de opgegeven primaire en secundaire versies, bijvoorbeeld 6.0. De toepassing wordt vervolgens omgeleid naar een andere versie van de assembly, bijvoorbeeld 6.0.1.0. Als een configuratiebestand van een uitgever de primaire of secundaire versie van een assembly incrementeert, is het mogelijk dat de volgende omleiding van de assembly meerdere beleidsconfiguratiebestanden vereist.
Elementen
-
assembly-
-
Een containerelement. Het eerste subelement moet een assemblyIdentity-zijn. Vereist.
Het assembly-element moet zich in de naamruimte bevinden urn:schemas-microsoft-com:asm.v1. Onderliggende elementen van de assembly moeten zich ook in deze naamruimte bevinden, door overname of door taggen.
Het assembly-element heeft de volgende kenmerken.
Attribuut Beschrijving manifestVersion- Het kenmerk manifestVersion moet worden ingesteld op 1.0. -
assemblyIdentity-
-
Beschrijft en identificeert een side-by-side assembly.
Als het eerste subelement van een assembly element, beschrijft de assemblyIdentity de assembly naast elkaar waarop een of meer assembly-afhankelijkheden zijn gewijzigd. Het configuratiebestand van de uitgever leidt de afhankelijkheden van de geïdentificeerde assembly om. De volgende assemblyIdentity geeft bijvoorbeeld aan dat het configuratiebestand van de uitgever van invloed is op de afhankelijkheden van de x86 Microsoft.Windows.Pop 6.0.0.0.0-assembly.
<assemblyIdentity type="win32-policy" publicKeyToken="0000000000000000" name="policy.6.0.Microsoft.Windows.Pop" version="2.1.0.0" processorArchitecture="x86"/>
Als het eerste subelement van een dependentAssembly element beschrijft assemblyIdentity een afhankelijkheid van de assembly naast elkaar. Het configuratiebestand van de uitgever configureert de identiteit van deze vereiste side-by-side assembly opnieuw. De wijziging wordt opgegeven in een bindingRedirect-. De volgende assemblyIdentity bijvoorbeeld wijzigingen aanbrengt in afhankelijkheid van Microsoft.Windows.SampleAssembly versie 2.0.0.0 in een afhankelijkheid van Microsoft.Windows.SampleAssembly versie 2.0.1.0.
<dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.SampleAssembly" processorArchitecture="x86" publicKeyToken="0000000000000000"/> <bindingRedirect oldVersion="2.0.0.0" newVersion="2.0.1.0"/> </dependentAssembly> </dependency>
Het element assemblyIdentity heeft de volgende kenmerken. Er zijn geen subelementen.
Attribuut Beschrijving type Hiermee geeft u het assemblytype op. Vereist. In de assemblyIdentity- voor de assembly die wordt beïnvloed, moet de waarde van het type kenmerk worden ingesteld op win32-beleid. De waarde win32-beleid moet in alle kleine letters staan.
In de assemblyIdentity- voor de veranderende assembly-afhankelijkheid moet de waarde van het type kenmerk worden ingesteld op win32. De waarde win32 moet in alle kleine letters staan.naam Een assembly een unieke naam. Vereist. In de assemblyIdentity- voor de assembly die wordt beïnvloed, heeft de naam het formulier beleid.primaire.kleine.assemblynaam waar primaire en secundaire verwijzen naar de primaire en secundaire onderdelen van de assemblyversie.
In de assemblyIdentity- voor de veranderende assembly-afhankelijkheid heeft de naam het formulier Organization.Division.Name. Bijvoorbeeld Microsoft.Windows.MysampleApp.taal Identificeert de taal van de assembly. Facultatief. Geef in de assemblyIdentity- voor de assembly die wordt beïnvloed, als de assembly taalspecifiek is, de DHTML-taalcode op. Als de assembly wereldwijd wordt gebruikt (taalneutraal), laat u dit kenmerk weg.
Geef in de assemblyIdentity- voor de veranderende assembly-afhankelijkheid de DHTML-taalcode op als de assembly taalspecifiek is. Als de assembly bedoeld is voor wereldwijd gebruik (taalneutraal) stelt u de waarde in op '*'.processorArchitecture Hiermee geeft u de processor waarop de toepassing wordt uitgevoerd. versie Hiermee geeft u de assemblyversie. Gebruik vierdelige versiesyntaxis: mmmm.nnnn.oooooo.ppp Vereist alleen in de DEF-context assemblyIdentity. Geef het versiekenmerk niet op in de REF-context assemblyIdentity-. publicKeyToken- Een hexadecimale tekenreeks van 16 tekens die de laatste 8 bytes van de SHA-1-hash van de openbare sleutel vertegenwoordigt waaronder de assembly is ondertekend. De openbare sleutel die wordt gebruikt om de catalogus te ondertekenen, moet 2048 bits of hoger zijn. Een publicKeyToken is vereist voor alle gedeelde assembly's naast elkaar. Het publicKeyToken dat wordt gebruikt voor het configuratiebestand van de uitgever moet dezelfde sleutel zijn die wordt gebruikt voor de ondertekende assembly. Publisher-configuratiebestanden kunnen worden ondertekend met dezelfde hulpprogramma's als die worden gebruikt met assembly's. Zie Voorbeeld van assemblyondertekening en ondertekende bestanden en catalogi maken. -
afhankelijkheid
-
Een optioneel containerelement voor ten minste één afhankelijkeAssembly-. Het heeft geen kenmerken.
-
dependentAssembly-
-
Elke afhankelijkeAssembly- moet zich binnen precies één afhankelijkheid. Een dependentAssembly- heeft geen kenmerken. Het eerste subelement van dependentAssembly- moet een assemblyIdentity- zijn voor de assembly naast elkaar die opnieuw wordt geconfigureerd door de configuratie van de uitgever.
-
bindingRedirect-
-
Het element bindingRedirect bevat omleidingsinformatie voor de binding van de assembly.
Dit element bevat de kenmerken die worden weergegeven in de volgende tabel.
Attribuut Beschrijving oldVersion- Hiermee geeft u de assemblyversie die wordt overschreven en omgeleid. Gebruik de syntaxis van de vierdelige versie nnnnn.nnnnn.nnnnn.nnnnn. Geef een reeks versies op met een streepje zonder spaties. Bijvoorbeeld 2.14.3.0 of 2.14.3.0 2.16.0.0. Vereist. newVersion- Hiermee geeft u de vervangende assemblyversie. Gebruik vierdelige versiesyntaxis nnnnn.nnnnn.nnnnn.nnnnn.
Opmerkingen
Publisher-configuratiebestanden geven geen bestanden op. Houd er rekening mee dat taalspecifieke beleidsbestanden gescheiden zijn van het configuratiebestand van de uitgever.
Voorbeeld
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity type="win32-policy" publicKeyToken="0000000000000000" name="policy.6.0.Proseware.Research.SampleAssembly" version="1.0.1.0" language="en-us" processorArchitecture="x86"/>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" publicKeyToken="0000000000000000" name="Proseware.Research.SampleAssembly" language="en-us" processorArchitecture="x86"/>
<bindingRedirect oldVersion="1.0.0.0" newVersion="1.0.1.0"/>
</dependentAssembly>
</dependency>
</assembly>