Recently I faced the problem with deploying an WPF application, which uses Entity Framework and Sql Server Compact 4.0 nuget packages. The application was deployed automatically by TFS Server as a Click Once installer. The problem was that the setup did not download Sql Server package at client machine and application could not work. Apart from checking what is maybe wrong on TFS side configuration, the simplest solution was to do a so called Private Deploy of the Sql CE libraries. Unfortunately it turned out to not be easy too.
In this post I would like to point out the main practical differences between ASP.NET Web API and WCF Data Services (OData). For those who does not yet know too much about Web API there is a lot of articles and tutorial about this topic on the net. The starting point is of course Microsoft ASP.NET team site which provides all related information and a bunch of tutorials. Concer…
Signing is a bit more tricky than strong naming. I didn’t want to use delay signing, because that requires additional configuration on development stations, so just like with strong naming – plain old simple build on the development machine and the fancy stuff on the build server.
This is another bit that will be helpful with our next tfs build script modification.
To use a certificate for either strong naming or signing code, you need to place it in the certificate store of the user asking for it (e.g. if you’re executing an automated build, the user in whose context the build is executed)
But there are also ways to create a csr without installing any software. There's the easy way (for those who have IIS installed) and the bit more complicated way (for those who like command line tools – that would be me)
Today we’re going to look at another build script adjustment – strong naming assemblies.
The scenario we are aiming for is that during development, the assemblies are not signed (so developers don’t need to have the a certificate file - a little bit more on that later), but during a build on the build server they are. This can be handled by providing additional parameters to msbuild.
The assembly version is a number in the form of <Major>.<Minor>.<Build>.<Revision>. What value the placeholders are assigned to is totally up to you, we chose to set the first three numbers manually and set the last one to the change set that the source was built from. At the same time, I didn’t want to limit the options, so by examining the “Build Number Format” input in the default template, I decided to merge the parameters available there with a custom parameter set (the build number format provides a couple of params, but doesn’t provide access to the change set number).