/KEYFILE (Specify Key or Key Pair to Sign an Assembly)





The linker inserts the public key into the assembly manifest and then signs the final assembly with the private key. To generate a key file, type sn -k filename at the command line. A signed assembly is said to have a strong name.


You can also pass your encryption information to the linker with /KEYCONTAINER. Use /DELAYSIGN if you want a partially signed assembly. See Strong Name Assemblies (Assembly Signing) (C++/CLI) for more information on signing an assembly.

In case both /KEYFILE and /KEYCONTAINER are specified (either by command line option or by custom attribute), the linker will first try the key container. If that succeeds, then the assembly is signed with the information in the key container. If the linker does not find the key container, it will try the file specified with /KEYFILE. If that succeeds, the assembly is signed with the information in the key file and the key information will be installed in the key container (similar to sn -i) so that on the next compilation, the key container will be valid.

Note that a key file might contain only the public key.


Other linker options that affect assembly generation are:

To set this linker option in the Visual Studio development environment


  2. Click the Linker folder.

  3. Click the Command Line property page.

  4. Type the option into the Additional Options box.

To set this linker option programmatically

See also

MSVC linker reference
MSVC Linker Options