Editando Web.Config Configurações da string de conexão com o Wix

No momento, estou tentando modificar meu instalador do Wix (V3.5) para editar as configurações do Web.config do aplicativo .NET que eu quero instalar. Isso é bom para aplicativos ASP.NET normais, mas agora estou tentando aplicar meu projeto de configuração do Wix a um aplicativo .NET do Entity Framework, que, como você deve saber, tem uma configuração mais complicada de Cadeia de conexão com configurações de modelo .csdl e .ssdl.

Então, se minha configuração de string de conexão web.config parece algo assim: (onde [DBSERVER] & [DBNAME] são propriedades recuperadas de um diálogo)

  <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>

E eu edito meu Web.config no meu arquivo Product.Wsx com algo assim:

   <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"/>

Eu recebo uma string de conexão como esta:

  <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>

O que obviamente faz sentido, já que estou pedindo para substituir o atributo de string de conexão atual pelo que eu defini no valor.

Mas o que eu realmente preciso aqui é editar partes específicas da minha string de conexão e deixar o restante (existe algum tipo de ação de substituição que eu possa usar aqui), ou seja. deixar todas as configurações do meu modelo no lugar e apenas substituir o servidor de banco de dados e nome, etc, conforme necessário. Eu costumava fazer isso com os instaladores do Visual Studio sem problemas e era tão fácil de usar.

Então, minha pergunta é que isso pode ser feito usando util.XMLFile, ou talvez util: XmlConfig? Eu tentei os dois sem qualquer sorte.

Ou isso não é possível fazer com util.XMLFile e eu vou ter que fazer isso em um CustomAction em vez disso? Qualquer idéia seria de grande ajuda, obrigado antecipadamente ...

questionAnswers(2)

yourAnswerToTheQuestion