Delen via


Procedure: Een openbaar-persoonlijk sleutelpaar maken

Als u een assembly met een sterke naam wilt ondertekenen, moet u een openbaar/persoonlijk sleutelpaar hebben. Dit openbare en persoonlijke cryptografische sleutelpaar wordt gebruikt tijdens de compilatie om een sterk benoemde assembly te maken. U kunt een sleutelpaar maken met behulp van het hulpprogramma Strong Name (Sn.exe). Sleutelpaarbestanden hebben meestal de extensie .snk .

Notitie

In Visual Studio bevatten de eigenschappenpagina's C# en Visual Basic een tabblad Ondertekening waarmee u bestaande sleutelbestanden kunt selecteren of nieuwe sleutelbestanden kunt genereren zonder Sn.exe te gebruiken. In Visual C++ kunt u de locatie van een bestaand sleutelbestand opgeven op de pagina Geavanceerde eigenschappen in de sectie Linker van de sectie Configuratie-eigenschappen van het venster Eigenschappen van eigenschappen. Het gebruik van het AssemblyKeyFileAttribute kenmerk om sleutelbestandparen te identificeren, is verouderd vanaf Visual Studio 2005.

Een sleutelpaar maken

Als u een sleutelpaar wilt maken, typt u bij een opdrachtprompt de volgende opdracht:

sn -k<bestandsnaam>

In deze opdracht is de bestandsnaam de naam van het uitvoerbestand met het sleutelpaar.

In het volgende voorbeeld wordt een sleutelpaar met de naam sgKey.snk gemaakt.

sn -k sgKey.snk

Als u het ondertekenen van een assembly wilt vertragen en u het hele sleutelpaar beheert (onwaarschijnlijk buiten testscenario's), kunt u de volgende opdrachten gebruiken om een sleutelpaar te genereren en vervolgens de openbare sleutel uit te pakken in een afzonderlijk bestand. Maak eerst het sleutelpaar:

sn -k keypair.snk

Pak vervolgens de openbare sleutel uit het sleutelpaar en kopieer deze naar een afzonderlijk bestand:

sn -p keypair.snk public.snk

Nadat u het sleutelpaar hebt gemaakt, moet u het bestand plaatsen waar de hulpprogramma's voor sterke naamondertekening het kunnen vinden.

Bij het ondertekenen van een assembly met een sterke naam zoekt de Assembly Linker (Al.exe) naar het sleutelbestand ten opzichte van de huidige map en naar de uitvoermap. Wanneer u opdrachtregelcompilers gebruikt, kunt u de sleutel gewoon kopiƫren naar de huidige map met uw codemodules.

Als u een eerdere versie van Visual Studio gebruikt die geen tabblad Ondertekenen in de projecteigenschappen heeft, is de aanbevolen locatie van het sleutelbestand de projectmap met het bestandskenmerk dat als volgt is opgegeven:

[assembly:AssemblyKeyFileAttribute("keyfile.snk")];
[assembly:AssemblyKeyFileAttribute("keyfile.snk")]
<Assembly:AssemblyKeyFileAttribute("keyfile.snk")>

Zie ook