Die Instrumentierung einer signierten Assembly würde eine Warnmeldung auslösen: XXX.DLL/XXX.EXE signiert wurde. Die Instrumentierung unterbricht die Überprüfung
Dieser Artikel hilft Ihnen bei der Behebung des Problems, bei dem die Fehlermeldung XXX.DLL/XXX.EXE signiert wurde. Die Instrumentierung unterbricht die Überprüfung.
Gilt für: Microsoft Visual Studio
Ursprüngliche KB-Nummer: 2200180
Problembeschreibung
In Visual Studio erhalten Sie eine Warnmeldung ähnlich der folgenden Meldung:
XXX.DLL/XXX.EXE wurde signiert. Die Instrumentierung unterbricht die Überprüfung. Deaktivieren Sie entweder die Überprüfung für diese Assembly, oder signieren Sie sie im Schritt nach der Instrumentierung erneut. Drücken Sie OK, um trotzdem zu versuchen, ein Profil zu erstellen.
Wenn Sie im Meldungsfeld auf "OK " klicken, würde der Profiler ausgeführt, es werden jedoch nach der Instrumentierung der Assembly keine Daten gesammelt.
Sie erstellen einen beliebigen Typ von .NET-basierter Anwendung (Konsole, WinformsTestprojekt usw.) und signiert die Assembly. Anschließend verwenden Sie den Leistungsassistenten, um die signierte Assembly zu instrumentieren. Weitere Informationen finden Sie im MSDN-Dokument: How to: Use Performance Wizard.
Es tritt ein Fehler ähnlich dem folgenden Fehler auf:
Microsoft Visual Studio
<Assembly Name> wurde signiert. Die Instrumentierung unterbricht die Überprüfung. Deaktivieren Sie entweder die Überprüfung für diese Assembly, oder signieren Sie sie im Schritt nach der Instrumentierung erneut. Drücken Sie OK, um trotzdem zu versuchen, ein Profil zu erstellen.
OK Abbrechen
Ursache
Einer der Gründe hierfür ist, dass der Visual Studio Profiler den starken Namen für die signierten Assemblys unterbrechen würde, wenn Sie versuchen, die Assembly zu instrumentieren.One of the reasons this happens is the Visual Studio profiler would break the strong name for the signed assemblies when you try to instrument the assembly. Dies würde zu einer Ausnahme führen, wenn der Profiler versucht, eine Verbindung mit der signierten Assembly zu erstellen, da der starke Name für die signierte Assembly beschädigt ist. Dies würde zu einer internen Ausnahme führen, und der Profiler wäre nicht in der Lage, die Protokolle für die Instrumentierung zu erfassen.
Lösung
Es gibt zwei Methoden, um dieses Problem zu beheben.
Methode 1
Signieren Sie die Assembly im Schritt nach der Instrumentierung erneut. Gehen Sie wie folgt vor, um den Befehl zum erneuten Signieren für die Assembly einzugeben:
Gehen Sie wie folgt vor, um den Befehl in den Befehl nach dem Instrument einzugeben:
Wenn Sie Befehle nach dem Instrument für alle Binärdateien in einer Leistungssitzung angeben möchten, wählen Sie den Knoten der Leistungssitzung im Leistungs-Explorer aus, klicken Sie dann mit der rechten Maustaste, und wählen Sie "Eigenschaften" aus.
Wenn Sie Post-Instrument-Befehle für eine bestimmte Binärdatei angeben möchten, klicken Sie mit der rechten Maustaste auf den Namen der Binärdatei in der Zielliste der Leistungssitzung, und wählen Sie dann "Eigenschaften" aus.
Klicken Sie auf den Eigenschaftenseiten auf "Instrumentierung".
Geben Sie den Befehl im Textfeld "Befehlszeile " unter "Post-Instrument"-Ereignisse ein.
Klicken Sie auf OK.
Die oben genannten Schritte sind in MSDN dokumentiert. Im MSDN-Onlinedokument finden Sie Informationen zu: How to: Specify Pre- and Post-Instrument Commands.
Im Post-Instrument-Befehlszeilentyp lautet der Befehl:
"<path>\sn.exe" -Ra <assembly_path> <strong_name_file>.Zum Beispiel:
C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\sn.exe" -Ra "..Bin\Debug\TestApp.EXE" "..\..\ TestApp.EXE.snk.Methode 2
Registrieren Sie die Assembly für das Überspringen der Überprüfung:
sn -Vr <assembly>. Sie können dies im Post-Build-Ereignis der Assembly oder außerhalb der IDE tun, und Sie benötigen Administratorrechte, um dies zu tun.