Редактирование настроек строки подключения Web.Config с помощью Wix

В настоящее время я пытаюсь изменить мой установщик Wix (V3.5), чтобы отредактировать настройки Web.config приложения .NET, которое я хочу установить. Это нормально для обычных приложений ASP.NET, но сейчас я пытаюсь применить мой проект установки Wix к приложению Entity Framework .NET, которое, как вы, возможно, знаете, имеет более сложную настройку строки подключения с настройками модели .csdl и .ssdl.

Поэтому, если мой параметр строки подключения web.config выглядит примерно так: (где [DBSERVER] & [DBNAME] - свойства, полученные из диалога)

  <connectionStrings>
   <add name="SSITacticalSolutionEntities" connectionString="metadata=res://*/Model.TacticalSolutionModel.csdl|res://*/Model.TacticalSolutionModel.ssdl|res://*/Model.TacticalSolutionModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=sd-sql2008r2;Initial Catalog=SsiTacticalSolution1.2.4;Integrated Security=True;MultipleActiveResultSets=True&quot; />
  </connectionStrings>

И я редактирую свой Web.config в моем файле Product.Wsx с помощью чего-то вроде этого:

   <util:XmlFile Id="ModifyConnectionString" Action="setValue" Permanent="yes" File="[INSTALLLOCATION]Web.config"
                  ElementPath="/configuration/connectionStrings/add[\[]@name='!(loc.EntityName)'[\]]" Name="connectionString"
                  Value="Data Source=[DBSERVER];Initial Catalog=[DBNAME];Integrated Security=true;providerName=System.Data.EntityClient;MultipleActiveResultSets=True&quot;"   Sequence="5"/>

Я получаю строку подключения, как это:

  <connectionStrings>
      <add name="SSITacticalSolutionEntities" connectionString="Data Source=sd-sql2008r2;Initial Catalog=SsiTacticalSolution1.2.4;Integrated Security=true;providerName=System.Data.EntityClient;MultipleActiveResultSets=True&quot;"/>
  </connectionStrings>

Что, конечно, имеет смысл, поскольку я прошу его заменить текущий атрибут строки подключения тем, что я определил в значении.

Но здесь мне действительно нужно отредактировать определенные части моей строки подключения и оставить оставшуюся часть (есть ли какое-то действие замены, которое я могу использовать здесь), т.е. оставьте все мои настройки модели на месте и просто замените сервер базы данных, имя и т. д., как мне нужно. Раньше я делал это с установщиками Visual Studio без проблем, и это было так просто в использовании.

Поэтому мой вопрос: можно ли это сделать с помощью util.XMLFile или, возможно, util: XmlConfig? Я попробовал оба без удачи.

Или это невозможно сделать с помощью util.XMLFile, и мне придется вместо этого делать это в CustomAction? Любые идеи будут очень полезны, заранее спасибо ...

Ответы на вопрос(2)

Ваш ответ на вопрос