Assemblys mit starken Namen (Assemblysignierung) (C++/CLI)
Dieses Thema behandelt, wie Sie eine Assembly signieren können. Dies wird häufig auch als Vergeben eines starken Namens bezeichnet.
Hinweise
Wenn Sie mit Visual C++ arbeiten, verwenden Sie die Linkeroptionen zum Signieren der Assembly, um Probleme im Zusammenhang mit den CLR-Attributen zur Assemblysignierung zu vermeiden:
Einer der Gründe, nicht die Attribute zu verwenden, ist die Tatsache, dass der Schlüsselname in den Assemblymetadaten sichtbar ist. Dies kann ein Sicherheitsrisiko darstellen, falls der Dateiname vertrauliche Informationen enthält.Außerdem macht der von der Visual C++-Entwicklungsumgebung verwendete Buildprozess den Schlüssel ungültig, mit dem die Assembly signiert wurde, wenn Sie CLR-Attribute verwenden, um einer Assembly einen starken Namen zu geben, und anschließend ein Nachbearbeitungstool wie mt.exe auf die Assembly anwenden.
Wenn Sie über die Kommandozeile erstellen, Linkeroptionen verwenden, um die Assembly zu signieren, und dann ein Nachbearbeitungstool (wie mt.exe) ausführen, müssen Sie die Assembly mit sn.exe erneut signieren.Alternativ können Sie nach dem Erstellen das Signieren hinauszögern und nach Ausführung des Nachbearbeitungstools die Signierung abschließen.
Wenn Sie beim Buildvorgang in der Entwicklungsumgebung die Signierungsattribute verwenden, können Sie die Assembly erfolgreich signieren, indem Sie in einem Postbuildereignis explizit sn.exe (Sn.exe (Strong Name-Tool)) aufrufen.Weitere Informationen finden Sie unter Angeben von Buildereignissen.Durch die Verwendung von Attributen und einem Postbuildereignis können die Buildzeiten im Vergleich zu Vorgängen mit Linkeroptionen verkürzt werden.
Die folgenden Linkeroptionen unterstützen Assemblysignierung:
/KEYFILE (Schlüsselcontainer oder Schlüsselpaar zum Signieren einer Assembly festlegen)
/KEYCONTAINER (Schlüsselcontainer zum Signieren einer Assembly festlegen)
Weitere Informationen zu starken Assemblys finden Sie unter Erstellen und Verwenden von Assemblys mit starkem Namen.