Quantcast
Channel: Web Deployment Tool (MS Deploy)
Viewing all articles
Browse latest Browse all 663

Update ConnectionString in web.config using MSDeploy

$
0
0

How can I update connectionString in my web.config during deploy with MSDeploy?

Current web.config contains:

<?xml version="1.0" encoding="utf-8"?><configuration> <connectionStrings><site Setting="ON" /><remove name="conn1" /><add name="conn1" connectionString="server=server.database.windows.net;database=devdatabase1;user id=dbuser;password=dbpass;trusted_connection=False" providerName="System.Data.SqlClient" /><add name="conn2" connectionString="server=server.database.windows.net;database=devdatabase2;user id=dbuser;password=dbpass;trusted_connection=False" providerName="System.Data.SqlClient" /><add name="conn3" connectionString="server=server.database.windows.net;database=devdatabase3;user id=dbuser;password=dbpass;trusted_connection=False" providerName="System.Data.SqlClient" /><add name="StorageConnectionString" connectionString="DefaultEndpointsProtocol=http;AccountName=devstorage;AccountKey=devkey" /></connectionStrings></configuration>

What I need here is update connectionString for each add name="conn1|2|3".

 found this post and made Property.xml file with:

<parameters><parameter name="ChangeSiteSetting" value="OFF"><parameterEntry type="XMLFile" scope="web.config$" match="//configuration/connectionStrings/site/@Setting"/></parameter><parameter name="ChangeRemoveName" value="NewConn"><parameterEntry type="XMLFile" scope="web.config$" match="//configuration/connectionStrings/remove/@name"/></parameter>  <parameter name="ChangeAddName" value="NewConn"><parameterEntry type="XMLFile" scope="web.config$" match="//configuration/connectionStrings/remove/add/@name"/></parameter><parameter name="ChangeConnection" value="NewConnString"><parameterEntry type="XMLFile" scope="web.config$" match="//configuration/connectionStrings/remove/add/@connectionString"/></parameter></parameters>

And run it as:

$ msdeploy -verb:sync -source:dirpath=C:\BuildTest\Src -dest:dirpath=C:\BuildTest\Dst -setParamFile=C:\BuildTest\Property.xml

Result is:

$ type Dst\web.config<?xml version="1.0" encoding="utf-8"?><configuration><connectionStrings><site Setting="OFF" /><remove name="NewConn" /><add name="conn1" connectionString="server=server.database.windows.net;database=devdatabase1;user id=dbuser;password=dbpass;trusted_connection=False" providerName="System.Data.SqlClient" /><add name="conn2" connectionString="server=server.database.windows.net;database=devdatabase2;user id=dbuser;password=dbpass;trusted_connection=False" providerName="System.Data.SqlClient" /><add name="conn3" connectionString="server=server.database.windows.net;database=devdatabase3;user id=dbuser;password=dbpass;trusted_connection=False" providerName="System.Data.SqlClient" /><add name="StorageConnectionString" connectionString="DefaultEndpointsProtocol=http;AccountName=devstorage;AccountKey=devkey" /></connectionStrings></configuration>

I tried to set:

<parameterEntry type="XMLFile" scope="web.config$" match="//configuration/connectionStrings/remove/add[@name=conn1]/@connectionString"/>

to reach and update  connectionString name="conn1" - but this not works too.

Idea is to have separate Property.xml files for DEV, STAGE, PROD environments and update them during deploy viavariable, e.g.:

$ msdeploy -verb:sync -source:dirpath=C:\BuildTest\Src -dest:dirpath=C:\BuildTest\Dst -setParamFile=C:\BuildTest\DEVproperty.xml

Viewing all articles
Browse latest Browse all 663

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>