Click here to Skip to main content
Click here to Skip to main content
Go to top

How to sign C++/CLI assemblies with a strong name

, 20 Apr 2009
Rate this:
Please Sign up or sign in to vote.
Learn how to sign C++/CLI assemblies with a strong name.

Introduction

If your application is signed with a strong name, Visual Studio will require you to sign every assembly you reference. Now, even if you are a .NET only developer, it happens sometimes that you have to deal with some kind of interop with C++/CLI DLLs. If both situations happen, you will find yourself in the need to sign a C++ assembly with a strong name.

To do so, you have to specify the key file you will use, at: Project-> Properties-> Configuration Properties-> Linker-> Advanced-> Key File. Something like this:

image

Don't try to sign the assembly with a .Pfx file. It won't work. To do so, you need a .SNK file (Strong Name Key). You can generate one with the SN.EXE tool, using:

sn.exe –k [directory]\[filename].snk

Where to find SN.EXE?

In the Microsoft .NET Framework SDK (usually c:\program files\microsoft .net\sdk\bin, or something similar). You can download the SDK from here.

Note: In order to install the SDK, you will also need the .NET Framework 1.1 installed. As it's a bit old, many people don't have it in their machines.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Inaki Ayucar
Software Developer (Senior)
Spain Spain
Inaki Ayucar is a Microsoft MVP in DirectX/XNA, and a software engineer involved in development since his first Spectrum 48k, in the year 1987. He is the founder and chief developer of The Simax Project (www.simaxvirt.com) and is very interested in DirectX/XNA, physics, game development, simulation, C++ and C#.
 
His blog is: http://graphicdna.blogspot.com
 
To contact Inaki: iayucar@simax.es

Comments and Discussions

 
GeneralAutomatically signing an assembly PinmemberRickNash20-Apr-11 22:54 
Hi
 
Not really related to this topic but I thought I would ask.
 
We are siging our assemblies using a PFX file and using ILMerge to merge the signed assemblies.
 
The merged assembly is delayed signed and needs signing, hence we have to use sn.exe.
 
However sn.exe asks for password each time. As we will end up with 100+ merged asseblies (its a big project). We want to automate this process using a batch file. However sn.exe does not accept a password parameter.
 
Do you know of a way around this?

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web01 | 2.8.140916.1 | Last Updated 20 Apr 2009
Article Copyright 2009 by Inaki Ayucar
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid