Freigeben über


Verwenden von Publicize zum Erstellen eines privaten Accessors

Das Befehlszeilentool publicize.exe generiert eine Assembly, die öffentliche Typen enthält. Diese öffentlichen Typen umschließen alle privaten Typen in einer zweiten Assembly. Mit dem Tool publicize unterstützen Sie die Erstellung von Komponententests, die für private Typen entwickelt werden.

Die generierte Assembly wird auch als privater Accessor bezeichnet. Sie können private Accessoren zwar auch von der IDE aus generieren, können aber stattdessen publicize.exe in Automatisierungs-, Skripterstellungs- und Buildszenarien verwenden.

Tipp

Die Verwendung von Accessoren ist in Visual Studio 2010 als veraltet festgelegt und nicht mehr Teil zukünftiger Versionen von Visual Studio.

Publicize unterstützt keine Delegaten oder Ereignisse

Eine Assembly, die Sie testen, kann verschiedene Arten von privaten oder internen Typen enthalten. Wenn Sie publicize.exe ausführen und den Namen dieser Assembly übergeben, wird ein privater Accessor für diese Assembly generiert. Der generierte private Accessor enthält Code, der dem Testcode den Zugriff auf private Typen in der Assembly ermöglicht. Er ermöglicht jedoch keinen Zugriff auf private oder interne Delegaten oder Ereignisse.

Verwenden des Tools Publicize.exe

Um publicize.exe zu verwenden, öffnen Sie zuerst eine Visual Studio 2010-Eingabeaufforderung. Klicken Sie dazu auf Start, klicken Sie auf Alle Programme, zeigen Sie auf Microsoft Visual Studio 10.0, zeigen Sie anschließend auf Visual Studio-Tools, und klicken Sie dann auf Visual Studio 2010-Eingabeaufforderung. Verwenden Sie die folgende Syntax mit publicize.exe:

Publicize.exe [options] input-assembly

Dieser Befehl umschließt alle privaten Typen in der input-assembly-Assembly.

Optionen

Dieser Befehl verfügt über die Optionen /target, /delaysign und /keyfile. Diese Optionen werden in den folgenden Abschnitten beschrieben.

/target

Syntax: Publicize.exe /target:[value] input-assembly

Die /target-Option bewirkt, dass die generierte Assembly für die Ausführung auf einer bestimmten Plattform erstellt wird. Die möglichen Werte für /target lauten:

  • Desktop: generiert einen standardmäßigen privaten CLR-Accessor. Desktop ist der Standardwert für die target:-Option.

  • WebSite: generiert einen privaten Accessor, der mit einer Website kompatibel ist.

    Tipp

    Verwenden Sie die WebSite-Option nur zum Testen von Code auf einer Website, die Sie in Visual Studio erstellt haben. Wählen Sie dazu im Menü Datei die Option Website aus.

/delaysign

Syntax: Publicize.exe /delaysign input-assembly

Verwenden Sie die /delaysign-Option, um anzugeben, dass Sie die Assembly zum jetzigen Zeitpunkt nicht signieren möchten. In der Ausgabeassembly wird Speicherplatz reserviert, damit eine digitale Signatur zu einem späteren Zeitpunkt hinzugefügt werden kann.

Mit /delaysign können Sie mit den Tests fortfahren, nachdem Sie publicize.exe ausgeführt haben. Ein temporäres öffentliches Schlüsseltoken wird verwendet, und Sie können die Assembly zu einem späteren Zeitpunkt signieren.

Wenn Sie die /delaysign-Option verwenden, müssen Sie auch die /keyfile-Option verwenden. Die Datei, die Sie mit der /keyfile-Option angeben, muss einen öffentlichen Schlüssel enthalten. Optional kann die Datei auch einen privaten Schlüssel enthalten.

/delaysign ist auch eine .NET-Compileroption. Weitere Informationen finden Sie unter Erstellen und Verwenden von Assemblys mit starkem Namen und unter Verzögertes Signieren einer Assembly.

/keyfile

Syntax: Publicize.exe /keyfile<key file> input-assembly

Verwenden Sie die /keyfile-Option, um eine Assembly zu signieren, wenn Sie publicize.exe ausführen. Verwenden Sie den <Schlüsseldatei>-Begriff, um den Namen einer vorhandenen Datei anzugeben, die einen kryptografischen Schlüssel enthält. Der <Schlüsseldatei>-Begriff kann einen absoluten oder relativen Pfad zur Schlüsseldatei einschließen.

Wenn Sie die /keyfile-Option verwenden, haben Sie die Möglichkeit, auch die /delaysign-Option zu verwenden. Wenn Sie /keyfile ohne /delaysign verwenden, muss die Datei, die Sie mit der /keyfile-Option angeben, sowohl einen öffentlichen Schlüssel als auch einen privaten Schlüssel enthalten.

/keyfile ist auch eine .NET-Compileroption. Weitere Informationen finden Sie unter Erstellen und Verwenden von Assemblys mit starkem Namen.

Beispiele

Der folgende Befehl generiert einen privaten Standarddesktop-Accessor für Myassembly.dll:

Publicize.exe myassembly.dll

Der folgende Befehl generiert einem privaten Accessor für die Website MyWebSite:

Publicize.exe /target:WebSite myassemby.dll

Der folgende Befehl generiert einen privaten Standarddesktop-Accessor für eine Assembly mit starkem Namen, Myassembly.dll, verschiebt die Signatur jedoch auf einen späteren Zeitpunkt:

Publicize.exe /delaysign /keyfile<FileWithPublicKey.snk> myassembly.dll

Siehe auch

Konzepte

Komponententests für Private-, Internal- und Friend-Methoden