PowerShell update connection strings

app-config, connection-string, entity-framework, linq, powershell

Solution

This line solves my problem:

(Get-Content "$aomsDir\$file") | % {$_ -replace '"', '"'} | Set-Content -path "$aomsDir\$file"

It will ensure that " is written to the config file and allows the application to connect to the database.

Problem

I have the following script that will update the connection string across three different config files used in development. ``` function Main() { pushd cd .. $aomsDir = pwd $configFiles = @( 'util\GeneratePocos.exe.config', 'src\Web.UI\web.config', 'src\Data\App.Config') $MyAOMSEntitiesConnStr = $env:AOMS_CONN_STR Write-Host 'Beginning update of Connection strings...' foreach($file in $configFiles) { $config = New-Object XML $config.Load("$aomsDir\$file") foreach($conStr in $config.configuration.connectionStrings.add) { if($conStr.name -ieq 'AOMSEntities') { $conStr.connectionString = $MyAOMSEntitiesConnStr } } $config.Save("$aomsDir\$file") } Write-Host 'Completed updating connection strings for your machine.' popd ``` } Main The problem is that the connection string needs to include "e; but when the config file is saved this becomes &quote; As a result the connection string is no longer valid. Does anyone know of a way to do this, I thought about doing a text replace of the file but maybe there is a cleaner way. Thanks for your help.

Original source