Delen via


Publisher-configuratie

Een publisher-configuratiebestand toepassingen en assembly's wereldwijd omleidt, afhankelijk van één versie van een assembly naast elkaar om een andere versie van dezelfde assembly te gebruiken. Hierdoor kunnen toepassingen en assembly's de bijgewerkte assembly gebruiken zonder dat alle betrokken toepassingen opnieuw hoeven te worden gebouwd.

Publisher-configuratiebestanden kunnen worden verstrekt door de uitgever van een assembly bij het uitgeven van een nieuwe versie van de assembly met compatibele bugfixes of beveiligingsupdates. De bijgewerkte versie moet volledig compatibel zijn met eerdere versies. Een uitgeversconfiguratiebestand mag nooit worden gebruikt om nieuwe functies toe te voegen, tenzij de update volledig compatibel is met eerdere versies. Publisher-configuratiebestanden mogen nooit worden gebruikt om de primaire of secundaire versie van een assembly te verhogen. Stuur assemblyversie 6.0.0.0.0 bijvoorbeeld niet om naar 7.0.0.0 of naar 6.1.0.0.

Publisher-configuratiebestanden mogen alleen worden uitgegeven door de uitgever van de assembly. Assemblyontwikkelaars moeten gedeelde assembly's en configuratiebestanden van uitgevers ondertekenen. Gebruik dezelfde sleutel om de assembly en de bijbehorende uitgeversconfiguratiebestanden te ondertekenen. Publisher-configuratiebestanden moeten zijn ondertekend met dezelfde hulpprogramma's als voor assembly's. Zie voorbeeld van assemblyondertekening en ondertekende bestanden en catalogi maken.

Normaal gesproken wordt de nieuwe versie van een assembly en het bijbehorende uitgeversconfiguratiebestand geïnstalleerd in een servicepack-update. Publisher-configuratiebestanden mogen nooit worden geleverd als herdistribueerbaar toepassingen omdat het installeren van een uitgeversconfiguratiebestand globaal assembly's op het systeem omleidt. Als de assembly wordt bijgewerkt als herdistribueerbaar exemplaar, moet de uitgever beide van de volgende opgeven.

  • Een Windows Installer-pakket (.msi-bestand) dat de nieuwe versie van de assembly bevat met de configuratie van de uitgever. Dit kan worden geïnstalleerd als een servicepack of QFE, omdat in dit geval de klant ervoor heeft gekozen om het systeem wereldwijd bij te werken. Deze versie van het pakket mag nooit door toepassingen worden geïnstalleerd.
  • Een Windows Installer-samenvoegmodule (.msm-bestand) die alleen de nieuwe versie van de assembly bevat. Deze versie kan worden opgenomen in toepassingen.

Toepassingen waarvoor een minimale versie van de assembly is vereist, moeten hun afhankelijkheid van de minimale versie aangeven, als de minimale versie niet beschikbaar is op een systeem, kan de toepassing niet worden gestart. Als deze beschikbaar is als herdistribueerbaar, moet deze worden opgenomen in de installatie van de toepassing.

Als u bijvoorbeeld het volgende configuratiebestand voor uitgevers installeert binding omleidt van versie 2.0.0.0 van Microsoft.Windows.SampleAssembly naar versie 2.0.1.0. Hiermee wordt een nieuw beleid met de naam 1.1.0.0.Policy toegevoegd onder %systemDrive%\windows\winsxs\policies\x86_policy.2.0.Microsoft.Windows.SampleAssembly_75e377300ab7b886_x-ww_<hashvalue>.

<?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.2.0.Microsoft.Windows.SampleAssembly" version="1.1.0.0" processorArchitecture="x86"/>
   <dependency>
      <dependentAssembly>
         <assemblyIdentity type="win32" name="Microsoft.Windows.SampleAssembly"  processorArchitecture="x86" publicKeyToken="75e377300ab7b886"/>
         <bindingRedirect oldVersion="2.0.0.0" newVersion="2.0.1.0"/>
      </dependentAssembly>
   </dependency>
</assembly>

Als u het volgende configuratiebestand voor uitgevers voor dezelfde assembly installeert, wordt binding omgeleid van versie 2.0.0.0 van Microsoft.Windows.SampleAssembly naar versie 2.0.3.0. Hiermee voegt u nog een beleid toe, genaamd 2.1.0.0.Policy, onder %systemDrive%\windows\winsxs\policies\x86_policy.2.0.Microsoft.Windows.SampleAssembly_75e377300ab7b886_x-ww_<hashvalue>.

<?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.2.0.Microsoft.Windows.SampleAssembly" version="2.1.0.0" processorArchitecture="x86"/>
   <dependency>
      <dependentAssembly>
         <assemblyIdentity type="win32" name="Microsoft.Windows.SampleAssembly"  processorArchitecture="x86" publicKeyToken="75e377300ab7b886"/>
         <bindingRedirect oldVersion="2.0.0.0" newVersion="2.0.3.0"/>
      </dependentAssembly>
   </dependency>
</assembly>