我知道这已经提出了大量的线程,但到目前为止我还没有遇到一个解决方案,正在为我工作。基本上我们有大约300个网站,在web.configs中都有独特的数据库连接字符串。当开发发布一个新版本时,我们不得不手动将连接字符串从web.config的备份复制到新的web.config中。有300个网站,这是耗时且容易出错的。我想从中删除人为因素,并且正在寻找PowerShell来帮助解决这个问题。大规模部署web.config修改
我的思维过程如下:可搜索现有的web.config的ConnectionString的信息
脚本,它转储到保持文件。
脚本读取拿着文件,然后替换新的web.config文件中相应的值
我在其他线程尝试了几种解决方案,如:
Editing Web Config file using Microsoft PowerShell
,但我只是得到无论我尝试什么,错误都会出错。我最近的脚本:
$cfg = [xml](gc E:\scripts\web.config)
$cfg.configuration.connectionStrings.add|%{
$_.connectionString = $_.connectionString -replace "QA", "PRODUCTION";
}
$cfg.Save("E:\scripts\Web.config");
将返回:
Property 'connectionString' cannot be found on this object; make sure it exists and is settable.
At E:\scripts\WebConfig.ps1:4 char:7
+ $_. <<<< connectionString = $_.connectionString -replace "QA", "PRODUCTION";
+ CategoryInfo : InvalidOperation: (connectionString:String) [], RuntimeException
+ FullyQualifiedErrorId : PropertyNotFound
我一直在战斗着这一切的一天,所以,如果有人可以点我正确的方向,我将不胜感激。我不想找人为我写一个解决方案,只是寻找指针,因为我不能成为唯一一个遇到过这个挑战的人。
如果你想摆脱那个错误..用-eq替换等号 – JonnyBoy