Obecnie próbuję zmodyfikować mój instalator Wix (V3.5), aby edytować ustawienia Web.config aplikacji .NET, którą chcę zainstalować. Jest to w porządku dla zwykłych aplikacji ASP.NET, ale teraz próbuję zastosować mój projekt konfiguracji Wix do aplikacji Entity Framework .NET, która, jak być może wiesz, ma bardziej skomplikowane ustawienie ciągu połączenia z ustawieniami modelu .csdl i .ssdl.Edycja ustawień połączenia internetowego Web.Config z Wix
Więc jeśli moje web.config ustawienie ciąg połączenia wygląda somehting tak: (gdzie [DBSERVER] & [DBNAME] są właściwości retrived z okna dialogowego)
<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>
I edytować Web.config w moim plik Product.Wsx z somehting tak:
<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"/>
otrzymuję ciąg połączenia tak:
<connectionStrings>
<add name="SSITacticalSolutionEntities" connectionString="Data Source=sd-sql2008r2;Initial Catalog=SsiTacticalSolution1.2.4;Integrated Security=true;providerName=System.Data.EntityClient;MultipleActiveResultSets=True""/>
</connectionStrings>
Co oczywiście ma sens, ponieważ poproszę o zastąpienie bieżącego atrybutu ciągu połączenia tym, co zdefiniowałem w wartości.
Ale naprawdę potrzebuję tutaj edytować określone części ciągu połączenia i pozostawić resztę (czy jest tu jakaś zamiana, którą można tutaj użyć), tj. pozostaw wszystkie moje ustawienia modelu w miejscu i po prostu zamień serwer bazy danych i nazwę itp., tak jak potrzebuję. Zrobiłem to z instalatorami Visual Studio bez problemu i było tak łatwe w użyciu.
Moje pytanie brzmi: czy można to zrobić za pomocą util.XMLFile, czy może użyć: XmlConfig? Próbowałem obu bez żadnego szczęścia.
Czy nie można tego zrobić z plikiem util.XMLFile i czy będę musiał to zrobić w trybie CustomAction? Wszelkie pomysły będą bardzo pomocne, z góry dzięki ...
Necro, ale ... lepiej jest zastąpić swoje prawdziwe GUID-y za pomocą "PUT-GUID-HERE" w przykładach. – Izzy
Dzięki za wskazówkę Izzy – Alicia