I am still trying to get my head around MSBuild things. Currently I am fiddling around with deploying via powershell script using the generated scripts from the PackageWeb-Nuget-Package (video demo). I have been trying that out for a few days now and it seemed to work. But "suddenly" the connection string in the generated web.config is tokenized and instead of the connection string in question I see
connectionString="$(ReplacableToken_DefaultConnection-Web.config Connection String_0)
I wrote "suddenly" because I could not link this (for me new) behaviour to anything I had done in the previous hours.
So to sum it up: The deployment from package is working fine, also the correct config transformation is being applied, but I end up with this tokenized connection string.
I realize that I can fix this if I insert
<AutoParameterizationWebConfigConnectionStrings>false</AutoParameterizationWebConfigConnectionStrings>
into a PropertyGroup (I just put it into the generated targets-file that the Nuget-Package creates)
However I really dislike this, having to insert this additional value into each project that might need it; especially because I did not know I need this adjustment in the first place. Yesterday it worked and I did not have this extra line inserted into any projects- or targets-file.
So I was hoping that maybe someone knows an extra switch, trick or setting that might have an additional influence on how that is working, too.
Microsoft is using auto parameterization by default. This includes het connectionstrings. You can disable this by adding this to the project file.
<AutoParameterizationWebConfigConnectionStrings>false</AutoParameterizationWebConfigConnectionStrings>
For disabling all transforms you can add this as described here.
<TransformWebConfigEnabled>false</TransformWebConfigEnabled>
For disable all the parameters for a deployment package:
<DisableAllVSGeneratedMSDeployParameter>true</DisableAllVSGeneratedMSDeployParameter>