In higher SKUs of Visual Studio, there is a signing property page that is used for signing the assembly as well as your ClickOnce manifests (it's pretty lame in Beta 1 but I just finished rewriting it for Beta 2 and it's pretty sweet). Unfortunatly for express users, they don't have this property page.

Fear not, MSBuild to the rescue. If you know the property names and values that the build tasks in Microsoft.Common.Targets uses then you can strong name sign assemblies in VS and even generate ClickOnce manifests (see my earlier post on this). Here are the magic properties:


<AssemblyOriginatorKeyFile>[path to your snk]</AssemblyOriginatorKeyFile>

Also, you can delay sign with: <DelaySign>true</DelaySign>

Put these in the first property group of your .vbproj or .csproj file and build using msbuild.exe <project file>. Just as a warning though, there may be issues with Express editions not preserving hand edited properties (I have a bug assigned to me to figure this out but it's kind of old so it may have gotten fixed without me knowing) so you may have to edit these manually each time you build. We're considering offering the signing property page in Express in Beta 2. If we decide to include ClickOnce (also under consideration) then we'll probably add some kind of signing property page since you need to sign ClickOnce manifests for them to be valid.