Assemblys mit starken Namen (Assemblysignierung) (C++/CLI)
In diesem Thema wird erläutert, wie Sie Ihre Assembly signieren können, die häufig als angabe eines starken Namens bezeichnet wird.
Hinweise
Verwenden Sie bei Verwendung von Visual C++ Linkeroptionen, um Ihre Assembly zu signieren, um Probleme im Zusammenhang mit den CLR-Attributen für die Assemblysignierung zu vermeiden:
Gründe für die Verwendung der Attribute sind die Tatsache, dass der Schlüsselname in Assemblymetadaten sichtbar ist, was ein Sicherheitsrisiko sein kann, wenn der Dateiname vertrauliche Informationen enthält. Außerdem wird der buildprozess, der von der Visual C++-Entwicklungsumgebung verwendet wird, den Schlüssel ungültig machen, mit dem die Assembly signiert ist, wenn Sie CLR-Attribute verwenden, um einer Assembly einen starken Namen zu geben, und dann ein Nachbearbeitungstool wie mt.exe auf der Assembly ausführen.
Wenn Sie in der Befehlszeile erstellen, verwenden Sie Linkeroptionen, um Ihre Assembly zu signieren, und führen Sie dann ein Nachbearbeitungstool (wie mt.exe) aus, müssen Sie die Assembly mit sn.exe erneut signieren. Alternativ können Sie die Assembly erstellen und verzögern und nach dem Ausführen von Nachbearbeitungstools die Signatur abschließen.
Wenn Sie beim Erstellen in der Entwicklungsumgebung die Signaturattribute verwenden, können Sie die Assembly erfolgreich signieren, indem Sie sn.exe (Sn.exe (Strong Name Tool)) in einem Postbuildereignis explizit aufrufen. Weitere Informationen finden Sie unter Specifying Build Events (Angeben von Buildereignissen). Buildzeiten können geringer sein, wenn Sie Attribute und ein Postbuildereignis verwenden, verglichen mit einer Linker-Optionen.
Die folgenden Linkeroptionen unterstützen die Assemblysignierung:
/KEYFILE (Schlüssel 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.
Siehe auch
.NET Programming with C++/CLI (Visual C++) (.NET-Programmierung mit C++/CLI (Visual C++))