/keyfile (C# Compiler Options)
Specifies the filename containing the cryptographic key.
When this option is used, the compiler inserts the public key from the specified file into the assembly manifest and then signs the final assembly with the private key. To generate a key file, type sn -k file at the command line.
If you compile with /target:module, the name of the key file is held in the module and incorporated into the assembly that is created when you compile an assembly with /addmodule.
In case both /keyfile and /keycontainer are specified (either by command line option or by custom attribute) in the same compilation, the compiler will first try the key container. If that succeeds, then the assembly is signed with the information in the key container. If the compiler 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.
To set this compiler option in the Visual Studio development environment
Open the Properties page for the project.
Click the Signing property page.
Modify the Choose a strong name key file property.
You can programmatically access this compiler option with AssemblyOriginatorKeyFile.