2016-05-25 7 views
2

Я использую msDeploy (3.0) для развертывания моего MVC-приложения. У меня есть конвейер сборки, который генерирует артефакты сборки для msdeploy, а мой конвейер развертывания применяет соответствующие преобразования web.config в Web.config перед тем, как развернуть его в экземплярах производства. Одно из преобразований включает изменения в строку подключения. Однако, глядя на развернутые экземпляры, кажется, что мои преобразования web.config переопределяются параметрами в файле setParameters.xml в моих артефактах сборки.Как игнорировать параметр строки подключения в SetParameter.xml

Идеальное поведение было бы в том, что я хотел бы избежать добавления любой строки Connection в SetParameter.xml, так что все мои переопределения строки подключения будут контролироваться только конвейером развертывания. Как мне это достичь?

Ниже приведен пример файла SetParameters.xml

<parameters> 
     <setParameter name="IIS Web Application Name" value="Default/Foo"/> 
     <setParameter name="Foo-Web.config Connection String" value="Server=Foo,1433;Database=Bar;Integrated Security=SSPI;MultiSubnetFailover=True;App=Something;Connection Timeout=25"/> 
    </parameters> 

В идеале это будет выглядеть как

<parameters> 
     <setParameter name="IIS Web Application Name" value="Default/Foo"/> 
    </parameters> 

Я уже пытался пропусканием файл parameters.xml на шаг MSBuild, который не содержат параметр соединительной строки, но это не работает

ответ

6

После того, как я ударил головой о стену в течение нескольких часов, я, наконец, понял решение. MsBuild принимает параметр - p: AutoParameterizationWebConfigConnectionStrings = false, который предотвращает параметризацию строк подключения. К сожалению, документации по этому параметру мало или вообще нет.

Вы также можете установить это на основе каждого проекта, добавив

 <AutoParameterizationWebConfigConnectionStrings>false</AutoParameterizationWebConfigConnectionStrings> 

к PropertyGroup вашей конфигурации сборки.