Я знаю, что это было создано в большом количестве потоков, но до сих пор я не сталкивался с решением, которое работает для меня. В основном у нас есть около 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