Attualmente sto tentando di modificare il mio programma di installazione Wix (V3.5) per modificare le impostazioni Web.config dell'applicazione .NET che voglio installare. Questo va bene per le normali applicazioni ASP.NET ma ora sto tentando di applicare il mio progetto di configurazione Wix a un'applicazione di Entity Framework .NET, che come forse sapete ha un'impostazione di stringa di connessione più complicata con le impostazioni del modello .csdl e .ssdl.Modifica Web.Config Impostazioni stringa di connessione con Wix
Quindi, se il mio web.config impostazione stringa di connessione sembra somehting in questo modo: (dove [DBSERVER] & [NOMEDB] sono le proprietà retrived da una finestra di dialogo)
<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 posso modificare il mio web.config nella mia file di Product.Wsx con somehting come questo:
<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"/>
ottengo una stringa di connessione come questo:
<connectionStrings>
<add name="SSITacticalSolutionEntities" connectionString="Data Source=sd-sql2008r2;Initial Catalog=SsiTacticalSolution1.2.4;Integrated Security=true;providerName=System.Data.EntityClient;MultipleActiveResultSets=True""/>
</connectionStrings>
Che naturalmente ha senso, dal momento che sto chiedendo di sostituire l'attributo di stringa di connessione corrente con quello che ho definito nel valore.
Ma quello di cui ho veramente bisogno qui è modificare parti specifiche della mia stringa di connessione e lasciare il resto (c'è una sorta di azione di sostituzione che posso usare qui), cioè. lasciare tutte le impostazioni del mio modello sul posto e basta sostituire il server del database e il nome ecc. come ho bisogno di. Ero abituato a farlo con i programmi di installazione di Visual Studio senza problemi ed era così facile da usare.
Quindi la mia domanda è possibile farlo utilizzando util.XMLFile, o forse util: XmlConfig? Ho provato entrambi senza fortuna.
Oppure non è possibile farlo con util.XMLFile e dovrò farlo in CustomAction? Qualsiasi idea sarebbe di grande aiuto, grazie in anticipo ...
Necro ma ... è meglio provare a sostituire i tuoi veri GUID con "PUT-GUID-HERE" negli esempi. – Izzy
Grazie per il suggerimento Izzy – Alicia