Редактирование настроек строки подключения 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="Data Source=sd-sql2008r2;Initial Catalog=SsiTacticalSolution1.2.4;Integrated Security=True;MultipleActiveResultSets=True" />
</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"" 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""/>
</connectionStrings>
Что, конечно, имеет смысл, поскольку я прошу его заменить текущий атрибут строки подключения тем, что я определил в значении.
Но здесь мне действительно нужно отредактировать определенные части моей строки подключения и оставить оставшуюся часть (есть ли какое-то действие замены, которое я могу использовать здесь), т.е. оставьте все мои настройки модели на месте и просто замените сервер базы данных, имя и т. д., как мне нужно. Раньше я делал это с установщиками Visual Studio без проблем, и это было так просто в использовании.
Поэтому мой вопрос: можно ли это сделать с помощью util.XMLFile или, возможно, util: XmlConfig? Я попробовал оба без удачи.
Или это невозможно сделать с помощью util.XMLFile, и мне придется вместо этого делать это в CustomAction? Любые идеи будут очень полезны, заранее спасибо ...