Voor degenen die WEB doen in ASP.Net, kennen ze het principe van meerdere Config-bestanden:
Web.Config
Web.Debug.Config
Web.Release.Config
Het Web.Config-bestand is voor uw eigen ontwikkeling, het Web.Debug.Config-bestand is voor de TEST- of DEV-versie (op een andere server bijvoorbeeld) en de Release-versie is voor de PRODUCTIEServer.
Maar voor een Console- of Winform-applicatie bestaat deze mogelijkheid om meerdere Config-bestanden te hebben niet, althans niet binnen handbereik. Ik ga u laten zien hoe u deze optie kunt toevoegen in een Console- of Winform-applicatie of zelfs WPF.
Volg de stappen nauwkeurig:
1. Maak een bestand App.Debug.Config of een App.Release.Config bijvoorbeeld in Visual Studio onder uw oorspronkelijke App.Config
2. Klik met de rechtermuisknop op uw project en klik op "Unload Project" (in het Engels), ik ken de Franse vertaling niet maar het moet iets zijn als "Project Ontladen"
3. Vervolgens op het project, klik met de rechtermuisknop en kies "Edit" of "Bewerken" .csproj of .vbproj
4. Kopieer deze regels onder de laatste PropertyGroup :
<PropertyGroup> <ProjectConfigFileName>App.config</ProjectConfigFileName></PropertyGroup> |
5. Waar de regel <None Include="App.Config" /> zich bevindt (dat zoekt u), wijzig en voeg het volgende blok <None Include="App.Debug.Config"> toe in de ItemGroup sectie, natuurlijk als u maar één extra Config-bestand of meerdere gebruikt, aan u om deze nieuwe blokken toe te voegen die overeenkomen met uw bestanden en vergeet niet de naam te wijzigen:
<ItemGroup> <NoneInclude="App.config"/> <NoneInclude="App.Debug.config"> <DependentUpon>App.config</DependentUpon> </None> <NoneInclude="App.Release.config"> <DependentUpon>App.config</DependentUpon> </None> </ItemGroup> |
6. Onder de laatste Import tag kopieer dit:
<ImportProject="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v15.0\Web\Microsoft.Web.Publishing.targets"/> |
Voor Visual Studio 2017 is dit versie v15.0, maar als je versie Visual Studio 2019 gebruikt, vervang je v15.0 door v16.0 (voor VS2015 = v14.0 en voor VS2013=v12.0)
Je kunt zelfs de versie van jouw Visual Studio op je PC hier vinden:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\VisualStudio\v[JOUW VISUAL STUDIO VERSIE]\Web\Microsoft.Web.Publishing.targets
7. Voeg dit toe aan het einde van je bestand vóór de tag </Project>
<TargetName="AfterBuild"> <TransformXmlSource="@(AppConfigWithTargetPath)"Transform="$(ProjectConfigTransformFileName)"Destination="@(AppConfigWithTargetPath->'$(OutDir)%(TargetPath)')" /></Target> |
8. Sla alles op en laad je project opnieuw
9. Vergeet niet, zoals in ASP.Net, de tags xdt:Transform="SetAttributes" xdt:Locator="Match(name)" in je nieuwe Config-bestand te plaatsen na elk element dat je wilt transformeren en de tag <configuration> moet het volgende xdt-schema hebben: xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"
Een voorbeeld:
<?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.