Freigeben über


Instrumentieren und erneutes Signieren von Assemblys

Wenn Sie beim Testen von Code in einer Assembly Codeabdeckungsdaten erfassen möchten, muss Visual Studio diese Assembly zuerst instrumentieren. Bei der Instrumentation wird der Assembly Code hinzugefügt, mit dem Codeabdeckungsdaten generiert werden.

Wenn die zu testende Assembly jedoch mit einem starken Namen signiert ist, wird die Signatur aufgrund der Codeänderung beim Instrumentieren ungültig. Visual Studio versucht daher automatisch, die Assembly nach der Instrumentation sofort erneut zu signieren.

Wenn die Assembly erfolgreich erneut signiert wurde, wird der Testlauf beendet, und die richtigen Ergebnisse werden erzeugt. Wenn das Signieren fehlschlägt, wird eine Fehlermeldung wie die folgende angezeigt:

Strong name verification failed for the instrumented assembly 'SignedLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1696e096eba75082'. Please make sure that the correct key file for re-signing after instrumentation is specified in the test settings.

Gehen Sie folgendermaßen vor, um diesen Fehler zu beheben:

  • Erneutes Signieren der Assembly. Wenn die Schlüsseldatei vorliegt, mit der die Assembly signiert wurde, kann Visual Studio die Assembly automatisch erneut signieren.

  • Deaktivieren der Signaturüberprüfung. Sie können die Signaturüberprüfung auf dem Computer, auf dem die Assembly getestet wird, deaktivieren. Dies gilt nur für Assemblys, die von Ihnen angegebenen werden.

Erneutes Signieren der Assembly

Sie können in den Testeinstellungen für den Adapter für diagnostische Daten zur Codeabdeckung eine Schlüsseldatei angeben, um Binärdateien nach der Instrumentation erneut zu signieren. Wenn Sie mehrere signierte Assemblys testen, versucht Visual Studio, alle mit einem starken Namen signierten Assemblys mit der abgegebenen Schlüsseldatei erneut signieren.

Durch Angabe einer Schlüsseldatei wird dem Testlaufprozess eine erneute Signierung hinzugefügt. Visual Studio ermittelt automatisch, welche Assemblys neu signiert werden müssen. Hierzu wird die von Ihnen angegebene Schlüsseldatei verwendet. Alle Assemblys, die mithilfe dieser Schlüsseldatei erneut signiert werden können, werden signiert.

Tipp

Assemblys können nur mithilfe einer Schlüsseldatei erneut signiert werden, nicht mit einem Schlüsselnamen.

In folgenden Fällen erfolgt das erneute Signieren von Assemblys nur unvollständig oder überhaupt nicht:

  • Wenn die Schlüsseldatei nicht verfügbar ist, kann Visual Studio die Assembly nicht erneut signieren. Versuchen Sie, die Schlüsseldatei neu zu generieren, und versuchen Sie dann erneut, die Assembly zu signieren.

  • Wenn die Schlüsseldatei durch ein Kennwort geschützt ist, kann die Assembly nicht erneut signiert werden.

  • Pro Testlauf wird nur eine Schlüsseldatei unterstützt. Beispiel: Sie verfügen über einen Testlauf, der auf mehrere Assemblys verweist. Einige dieser Assemblys wurden mit einer bestimmten Schlüsseldatei signiert, während andere Assemblys mit einer anderen Schlüsseldatei signiert wurden. Da Sie nur eine Schlüsseldatei auswählen können, werden die Assemblys, die mit der anderen Schlüsseldatei signiert wurden, nicht erneut signiert. Sie müssen manuell signiert werden. Wenn einige Assemblys nicht signiert werden, wird beim Testlauf ein Fehler angezeigt. In diesem Fall können Sie die Signaturüberprüfung deaktivieren, wie unter Deaktivieren der Signaturüberprüfung beschrieben.

Deaktivieren der Signaturüberprüfung

Wenn das erneute Signieren fehlschlägt, können Sie die Signaturüberprüfung für diese Assembly für die Dauer des Testlaufs deaktivieren. Das erneute Signieren schlägt beispielsweise fehl, wenn die richtige Schlüsseldatei nicht verfügbar ist. Verwenden Sie zum Deaktivieren der Signaturüberprüfung das Sn.exe (Strong Name-Tool) mit der –Vr-Option, wie hier dargestellt:

SN -Vr <Assemblyname>

Dadurch wird die Überprüfung starker Namen auf dem Computer, auf dem der Befehl ausgeführt wird, nur für die angegebene Assembly deaktiviert.

Sie können den Befehl nur verwenden, wenn Sie über ausreichende Berechtigungen verfügen.

Wenn der Testlauf abgeschlossen ist, aktivieren Sie Signaturüberprüfung erneut. Verwenden Sie hierfür den Befehl SN.exe mit der Option –Vu, wie hier dargestellt:

SN -Vu <Assemblyname>

Tipp

Es ist wichtig, die Signaturüberprüfung erneut zu aktivieren. Wenn die Signaturüberprüfung deaktiviert bleibt, können Sicherheitsprobleme auftreten.

Siehe auch

Aufgaben

Gewusst wie: Konfigurieren von Codeabdeckung mithilfe von Testeinstellungen für automatisierte Tests

Gewusst wie: Erfassen von Codeabdeckungsdaten

Gewusst wie: Signieren einer Assembly mit einem starken Namen

Referenz

Sn.exe (Strong Name-Tool)

Konzepte

Assemblys mit starkem Namen

Weitere Ressourcen

Erstellen von Testeinstellungen zum Ausführen von automatisierten Tests in Visual Studio

Erstellen von Einstellungen für automatisierte Tests als Teil eines Testplans