Per coloro che lavorano nel WEB in ASP.Net, conoscono il principio di avere più file di Config:
Web.Config
Web.Debug.Config
Web.Release.Config
Il file Web.Config è per il proprio sviluppo, il file Web.Debug.Config è per la versione TEST o DEV (su un altro server ad esempio) e la versione Release è per il server di PRODUZIONE.
Ma per un'applicazione Console o Winform, questa possibilità di avere più file di Config non esiste, almeno non a portata di mano. Vi mostrerò come aggiungere questa opzione in un'applicazione Console o Winform o ancora WPF.
Seguite i passaggi in modo preciso:
1. Creare un file App.Debug.Config o anche un App.Release.Config ad esempio in Visual Studio sotto il vostro App.Config originale
2. Cliccate con il tasto destro del mouse sul vostro progetto e cliccate su "Unload Project" (in inglese), non conosco la traduzione italiana ma deve essere qualcosa come "Scarica il Progetto"
3. Poi sul progetto, cliccate con il tasto destro e fate "Edit" o "Modifica" .csproj o .vbproj
4. Copiate queste righe sotto l'ultimo PropertyGroup :
<PropertyGroup> <ProjectConfigFileName>App.config</ProjectConfigFileName></PropertyGroup> |
5. Dove si trova la riga <None Include="App.Config" /> (cercate questo), modificare e aggiungere il blocco seguente <None Include="App.Debug.Config"> nella sezione ItemGroup, ovviamente se utilizzate solo un file di Config aggiuntivo o più, a voi di mettere questi nuovi blocchi che corrispondono ai vostri file e non dimenticate di cambiare il nome:
<ItemGroup> <NoneInclude="App.config"/> <NoneInclude="App.Debug.config"> <DependentUpon>App.config</DependentUpon> </None> <NoneInclude="App.Release.config"> <DependentUpon>App.config</DependentUpon> </None> </ItemGroup> |
6. Sotto l'ultimo tag Import copiate questo:
<ImportProject="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v15.0\Web\Microsoft.Web.Publishing.targets"/> |
Per Visual Studio 2017, è la versione v15.0, ma se utilizzi la versione Visual Studio 2019, sostituisci v15.0 con v16.0 (per VS2015 = v14.0 e per VS2013=v12.0)
Puoi anche cercare la versione del tuo Visual Studio sul tuo PC qui:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\VisualStudio\v[LA TUA VERSIONE VISUAL STUDIO]\Web\Microsoft.Web.Publishing.targets
7. Aggiungi questo alla fine del tuo file prima del tag </Project>
<TargetName="AfterBuild"> <TransformXmlSource="@(AppConfigWithTargetPath)"Transform="$(ProjectConfigTransformFileName)"Destination="@(AppConfigWithTargetPath->'$(OutDir)%(TargetPath)')" /></Target> |
8. Salva tutto e ricarica il tuo progetto
9. Non dimenticare come in ASP.Net di mettere i tag xdt:Transform="SetAttributes" xdt:Locator="Match(name)" nel tuo nuovo file di Config dopo ogni elemento che vuoi trasformare e il tag <configuration> deve avere lo schema xdt seguente: xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"
Un esempio:
<?xmlversion="1.0"?> <appSettings> <addkey="Mode"value="Debug"xdt:Transform="Insert"/> </appSettings> <connectionStrings> <add name="MyDB" connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> </connectionStrings></ |
Aucun commentaire pour le moment.