Mam serwer CI (Bamboo, ale nie sądzę, że to ma znaczenie) budowanie i automatyczne wdrażanie mojej aplikacji. Podczas rozwoju lokalnego używam localdb (<connectionStrings>
węzeł w moim web.config
)Właściwy sposób ustawiania ciągów połączeń w ci podczas msbuild/wdrożyć
<add name="MyApp" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDB)\v11.0;Integrated Security=True;Connect Timeout=30;Initial Catalog=MyApp" />
<add name="MyApp_Patients" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDB)\v11.0;Integrated Security=True;Connect Timeout=30;Initial Catalog=AppleHms_MyApp" />
...
Po wdrożeniu oczywiście nie należy używać. Powinien używać ciągu połączenia mojego serwera sql wdrażania.
Wiem, że mogę napisać transformację web.config i wiem nawet, że mogę zaszyfrować plik web.config, ale nie jestem pewien, jak powinien wyglądać ciąg połączenia db. Jaki sens jest dla mnie na serwerze CI nadpisywać connectionString - więc mój config przekształcić powinien może wyglądać następująco
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<connectionStrings>
<add name="MyApp" providerName="System.Data.SqlClient" connectionString="${main-db-connectionstring}" xdt:Transform="SetAttributes" xdt:Locator="Match(name)" />
<add name="MyApp_Patients" providerName="System.Data.SqlClient" connectionString="${patients-db-connectionstring}" xdt:Transform="SetAttributes" xdt:Locator="Match(name)" />
...
</connectionStrings>
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
</system.web>
</configuration>
z nadpisania pochodzących od zmiennych w moim serwerze CI (przypuszczalnie jakąś część msbuild lub wdrożyć)?
Czy to prawda, że jest to "właściwy" sposób na zrobienie tego? Co dokładnie mam zrobić z msbuild/deploy, aby to się stało?
Dzięki - czy możesz podać przykład, jak będzie wyglądać komenda msdeploy lub msbuild? Jak przekazałbym wartość z wiersza poleceń? Czytałem (prawie bezwartościową) dokumentację i (o wiele bardziej pomocny) blog połączony z tym, że musiałby on być przechowywany w csproj? –