I don't want to get off on a rant here, but....

Avatar

Technology, Programming, Complaints, etc.

MS tooling loves to break stuff in new, random, and unexpected ways

If you are getting an error starting with "$(ReplacableToken" then some string identifier from your code then finishing "-Web.config Connection String_0)" it means that the deploy task is is maiming your Web.config trying to customize it for the environment.  To disable this pointless on by default behavior that makes no sense for MS to do when no replacements have been defined for the tokens it's creating.... do the following;

Don't fall for the trick of creating more files to make MS leave your existing files alone, just add the flag to the existing csproj file 

Prevent tokenizing connection strings

If you want to prevent your web.config connection strings from being tokenized it’s pretty easy. All we need to do is the add a property to the build/package/publish process. We can do that in 2 ways. Edit the project file itself or create a file with the name {ProjectName}.wpp.targets where {ProjectName} is the name of your project. The second approach is easier so I use that. In my case it would be MvcApplication1.wpp.targets. The contents of the file are shown below...

http://blogs.msdn.com/b/webdev/archive/2010/11/10/asp-net-web-application-publish-package-tokenizing-parameters.aspx