Is "AutoParameterizationWebConfigConnectionStrings"-option the only way to prevent connection string tokenization?

DrCopyPaste picture DrCopyPaste · May 22, 2013 · Viewed 7k times · Source

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.

Answer

LockTar picture LockTar · Apr 11, 2017

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>