Dienstprogramm zum Ersetzen von Token des öffentlichen Schlüssels

Mit diesem Dienstprogramm können Token des öffentlichen Schlüssels oder Variablen in einer Datei ersetzt werden, die ein Token des öffentlichen Schlüssels enthält, das aus einer Assemblyschlüsseldatei (.snk) mit starkem Namen abgeleitet wurde.

Dieses Hilfsprogramm kann nützlich sein, wenn ein Entwickler ein Skript schreibt, das die BTSTask Command-Line Reference zum Bereitstellen einer Assembly verwendet. Zum erfolgreichen Bereitstellen muss der voll gekennzeichnete Name der Assembly angegeben werden, die das Token des öffentlichen Schlüssels enthält. Das Token des öffentlichen Schlüssels wird aus einer SNK-Datei extrahiert und der Assembly zugewiesen, wenn diese erstellt wird. Bevor die Assembly jedoch in einer neuen Umgebung bereitgestellt werden kann, wird diese häufig mit einem anderen Token des öffentlichen Schlüssels neu erstellt. Dies hat zur Folge, dass der Entwickler möglicherweise nicht weiß, welches Token des öffentlichen Schlüssels beim Ausführen des Bereitstellungsskripts für die Assembly verwendet wird.

Das Dienstprogramm zum Ersetzen von Token des öffentlichen Schlüssels stellt zur Lösung dieses Problems die folgenden zwei Möglichkeiten zur Verfügung:

  • Szenario 1: Im Bereitstellungsskript kann entweder ein Token des öffentlichen Schlüssels oder ein Platzhalter für das Token des öffentlichen Schlüssels verwendet werden. Vor dem Ausführen des Skripts kann das Dienstprogramm zum Ersetzen von Token des öffentlichen Schlüssels ausgeführt werden, um das Token des öffentlichen Schlüssels oder den im Skript befindlichen Platzhalter mit dem Token des öffentlichen Schlüssels zu ersetzen, das aus der SNK-Datei zum Erstellen der Assembly in der Zielumgebung extrahiert wurde.

  • Szenario 2: Der Entwickler kann das Skript so konfigurieren, dass es automatisch das neue öffentliche Schlüsseltoken ersetzt: Rufen Sie am Anfang des Skripts das Hilfsprogramm Ersetzen von Öffentlichem Schlüsseltoken auf, und verweisen Sie es auf eine SNK-Datei, die das öffentliche Schlüsseltoken enthält. Verwenden Sie im Skript für das Token des öffentlichen Schlüssels die Umgebungsvariable %NEWTOKEN%. Bei der Ausführung des Skripts wird der Wert des Tokens des öffentlichen Schlüssels über das Dienstprogramm aus der SNK-Datei extrahiert und in der Umgebungsvariablen %NEWTOKEN% gespeichert. Bei der Ausführung des Skripts wird jede Instanz von %NEWTOKEN% mit dem in der angegebenen SNK-Datei enthaltenen Token des öffentlichen Schlüssels ersetzt. Beispiel:

    ReplacePKT.bat key.snk  
    ...  
    ...  
    gacutil /u Assembly, ... PublicKey=%NEWTOKEN% ...  
    

Speicherort im SDK

Das Dienstprogramm zum Ersetzen von Token des öffentlichen Schlüssels befindet sich unter:

\Programme (x86)\Microsoft BizTalk Server <VERSION>SDK\Utilities\ReplacePublicKeyToken\.

Das Dienstprogramm zum Ersetzen von Token des öffentlichen Schlüssels besteht aus drei Dateien:

  • ReplacePKT.bat

  • ReplacePKT.vbs

  • ReplacePKT.wsf

Prozeduren

Verwenden Sie folgendes Verfahren zum Ersetzen aller Instanzen eines Tokens des öffentlichen Schlüssels oder eines Platzhalters in einer Datei, die ein Token des öffentlichen Schlüssels enthält, das aus einer SNK-Datei extrahiert wird (beschrieben in Szenario 1).

So ersetzen Sie die Instanzen eines Tokens des öffentlichen Schlüssels oder eines Platzhalters in einer Datei

  1. Stellen Sie sicher, dass die drei Dateien des Dienstprogramms zum Ersetzen von Token des öffentlichen Schlüssels (ReplacePKT.bat, ReplacePKT.vbs, ReplacePKT.wsf) sowie die Skriptdatei und die SNK-Datei auf dem lokalen Computer zur Verfügung stehen.

  2. Wechseln Sie über ein Befehlszeilenfenster in den Ordner, der die Dateien des Dienstprogramms zum Ersetzen von Token des öffentlichen Schlüssels enthält.

  3. Geben Sie in der Eingabeaufforderung den folgenden Befehl ein:

  4. ReplacePKT <SNK-Datei> <altes öffentliches Schlüsseltoken> <Zu ersetzende Datei>

    Option BESCHREIBUNG
    <SNK-Datei> Vollständige Pfadangabe der SNK-Datei, die das Token des öffentliche Schlüssels enthält, das das vorhandene Token des öffentlichen Schlüssels oder dessen Platzhalter ersetzen soll.
    <altes öffentliches Schlüsseltoken> Zu ersetzendes Token des öffentlichen Schlüssels oder dessen Platzhalter.
    <Zu ersetzende Datei> Vollständiger Pfad der Datei, in der das Token des öffentlichen Schlüssels oder dessen Platzhalter ersetzt werden soll.

    Beispiel:

    ReplacePKT.bat C:\Tokens\MyToken.snk 12ab3456cd789e12 C:\Scripts\MyScript.vbs

    Verwenden Sie folgendes Verfahren zum automatischen Festlegen einer Umgebungsvariablen in einem Skript, das ein Token eines öffentlichen Schlüssels verwendet, das aus einer SNK-Datei extrahiert wird (beschrieben in Szenario 2).

So legen Sie eine Umgebungsvariable fest, die ein Token des öffentlichen Schlüssels verwendet

  1. Fügen Sie am Anfang des Skripts die folgende Codezeile ein:

    ReplacePKT <filename>.snk  
    

    Wobei <filename> der Name der SNK-Datei ist, von der das öffentliche Schlüsseltoken abgeleitet werden soll.

    Example: ReplacePKT.bat MyToken.snk  
    
  2. Verwenden Sie %NEWTOKEN% in Ihrer Skriptdatei, um das öffentliche Schlüsseltoken darzustellen.

    Beispiel:

    PublicKey=%NEWTOKEN%  
    
  3. Achten Sie bei der Übergabe des Skripts an die Benutzer darauf, dass die drei Dateien enthalten sind, aus denen das Dienstprogramm zum Ersetzen von Token des öffentlichen Schlüssels besteht (ReplacePKT.bat, ReplacePKT.vbs, ReplacePKT.wsf). Stellen Sie außerdem sicher, dass die Benutzer vor dem Ausführen des Skripts alle Dateien in den gleichen Ordner kopieren.

Weitere Informationen

Dienstprogramme des SDK