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="Data Source=sd-sql2008r2;Initial Catalog=SsiTacticalSolution1.2.4;Integrated Security=True;MultipleActiveResultSets=True" />
</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"" 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""/>
</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 ...