Gewusst wie: Erstellen einer Herausgeberrichtlinie

Aktualisiert: November 2007

Anbieter von Assemblys können bestimmen, dass Anwendungen eine neuere Assemblyversion verwenden sollen, indem sie der aktualisierten Assembly eine Herausgeberrichtliniendatei hinzufügen. In der Herausgeberrichtliniendatei werden Assemblyumleitungen und CodeBase-Einstellungen festgelegt. Sie hat dasselbe Format wie eine Anwendungskonfigurationsdatei. Die Herausgeberrichtliniendatei wird in eine Assembly kompiliert und im globalen Assemblycache abgelegt.

Die Erstellung einer Herausgeberrichtlinie umfasst drei Schritte:

  1. Erstellen einer Herausgeberrichtliniendatei.

  2. Erstellen einer Herausgeberrichtlinienassembly.

  3. Hinzufügen der Herausgeberrichtlinienassembly zum globalen Assemblycache.

Das Schema für Herausgeberrichtlinien wird unter Umleiten von Assemblyversionen näher erläutert. Das folgende Beispiel enthält eine Herausgeberrichtliniendatei, durch die eine Version von myAssembly zu einer anderen umgeleitet wird.

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

Unter Festlegen des Speicherortes einer Assembly erfahren Sie, wie eine CodeBase festgelegt wird.

Erstellen der Herausgeberrichtlinienassembly

Verwenden Sie das Assembly Linker-Tool (Al.exe), um die Herausgeberrichtlinienassembly zu erstellen.

So erstellen Sie eine Herausgeberrichtlinienassembly

  • Geben Sie an der Eingabeaufforderung den folgenden Befehl ein:

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

    Erläuterungen zu diesem Befehl:

    • Das publisherPolicyFile-Argument entspricht dem Namen der Herausgeberrichtliniendatei.

    • Das publisherPolicyAssemblyFile-Argument entspricht dem Namen der Herausgeberrichtlinienassembly, die durch diesen Befehl erstellt wird. Der Name der Assemblydatei muss folgendes Format aufweisen:

      policy.majorNumber.minorNumber.mainAssemblyName.dll

    • Das keyPairFile-Argument entspricht dem Namen der Datei, in der das Schlüsselpaar enthalten ist. Die Assembly und die Herausgeberrichtlinienassembly müssen mit demselben Schlüsselpaar signiert werden.

    • Das processorArchitecture-Argument identifiziert die von einer prozessorspezifischen Assembly verwendete Plattform. Es kann sich dabei um amd64, ia64, msil oder x86 handeln.

      Hinweis:

      Die Möglichkeit, eine bestimmte Prozessorarchitektur zu verwenden, ist neu in .NET Framework, Version 2.0.

    Durch den folgenden Befehl wird eine Herausgeberrichtlinienassembly mit dem Namen policy.1.0.myAssembly aus einer Herausgeberrichtliniendatei namens pub.config erstellt und der Assembly mithilfe des Schlüsselpaars in der Datei sgKey.snk ein starker Name zugewiesen. Darüber hinaus gibt der Befehl an, dass die Assembly die x86-Prozessorarchitektur verwendet.

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

    Die Herausgeberrichtlinienassembly muss mit der Prozessorarchitektur der Assembly übereinstimmen, für die sie gilt. Wenn die Assembly einen ProcessorArchitecture-Wert von MSIL hat, muss die Herausgeberrichtlinienassembly mit /platform:msil erstellt werden. Sie müssen eine separate Herausgeberrichtlinienassembly für jede prozessorspezifische Assembly bereitstellen.

    Aufgrund dieser Regel müssen Sie zum Ändern der Prozessorarchitektur einer Assembly die Haupt- oder Nebenkomponente der Versionsnummer ändern, damit Sie eine neue Herausgeberrichtlinienassembly mit der richtigen Prozessorarchitektur zur Verfügung stellen können. Die alte Herausgeberrichtlinienassembly kann die Assembly nicht bedienen, sobald die Assembly über eine andere Prozessorarchitektur verfügt.

    Des Weiteren kann der Version 2.0-Linker nicht zum Erstellen einer Herausgeberrichtlinienassembly für eine Assembly verwendet werden, die mit früheren Versionen von .NET Framework kompiliert wurde, da immer eine Prozessorarchitektur angegeben wird.

Hinzufügen der Herausgeberrichtlinienassembly zum globalen Assemblycache

Verwenden Sie das Global Assembly Cache-Tool (Gacutil.exe), um die Herausgeberrichtlinienassembly zum globalen Assemblycache hinzuzufügen.

So fügen Sie die Herausgeberrichtlinienassembly zum globalen Assemblycache hinzu

  • Geben Sie an der Eingabeaufforderung den folgenden Befehl ein:

    gacutil /i publisherPolicyAssemblyFile

    Durch den folgenden Befehl wird policy.1.0.myAssembly.dll zum globalen Assemblycache hinzugefügt.

    gacutil /i policy.1.0.myAssembly.dll
    
    Wichtiger Hinweis:

    Die Herausgeberrichtlinienassembly kann nur zum globalen Assemblycache hinzugefügt werden, wenn sich die ursprüngliche Herausgeberrichtliniendatei in demselben Verzeichnis wie die Assembly befindet.

Siehe auch

Konzepte

So sucht Common Language Runtime nach Assemblys

Umleiten von Assemblyversionen

Referenz

Schema für Laufzeiteinstellungen

Weitere Ressourcen

Programmieren mit Assemblys

Konfigurationsdateien

Konfigurieren von .NET Framework-Anwendungen

Konfigurationsdateischema für .NET Framework