Chapter 47

Assembly Versioning and Signing


  • Versioning assemblies
  • Signing an assembly to give it a strong name
  • Managing strongly named assemblies in the Global Assembly Cache

When you create a .NET assembly, you can optionally sign it to provide it with a strong name. An assembly without a strong name is identified by its filename, which often is not enough to uniquely identify it. This means that other projects that depend on your assembly cannot be guaranteed to consume the correct version. A strongly named assembly can be uniquely identified by dependent projects and even system administrators, who can apply a security policy to your assembly.

In this chapter, you learn how to use Visual Studio 2012 to set the assembly version number, and how you can use a digital signature to sign your assembly so that it can’t be tampered with. This also results in a strongly named assembly, which can be added to the Global Assembly Cache.


Every .NET assembly, whether it is an executable or a class library, contains a manifest that has information about the assembly’s identity. Primarily this includes the name and version number of the assembly but also includes culture and public key if it is a strongly named assembly. This information can be easily viewed by opening an assembly in Telerik’s JustDecompile, as shown in Figure 47-1.

The ...

Get Professional Visual Studio 2012 now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.