Ich habe verschiedene Lösungen ausprobiert und hier ist die einfachste, die ich persönlich gefunden habe.
Dan wies in den Kommentaren darauf hin , dass der Original - Beitrag gehört zu Oleg Sych - danke, Oleg!
Hier sind die Anweisungen:
1. Fügen Sie dem Projekt für jede Konfiguration eine XML-Datei hinzu.
In der Regel haben Sie Debugund ReleaseKonfigurationen, benennen Sie also Ihre Dateien App.Debug.configund App.Release.config. In meinem Projekt habe ich eine Konfiguration für jede Art von Umgebung erstellt. Vielleicht möchten Sie damit experimentieren.
2. Entladen Sie das Projekt und öffnen Sie die .csproj-Datei zur Bearbeitung
Mit Visual Studio können Sie .csproj- Dateien direkt im Editor bearbeiten. Sie müssen lediglich das Projekt zuerst entladen. Klicken Sie dann mit der rechten Maustaste darauf und wählen Sie <Projektname> .csproj bearbeiten .
3. Binden Sie App. *. Config-Dateien an die Haupt-App.config
Suchen Sie den Projektdateibereich, der alle App.configund App.*.configReferenzen enthält . Sie werden feststellen, dass ihre Build-Aktionen auf Folgendes eingestellt sind None:
<None Include="App.config" />
<None Include="App.Debug.config" />
<None Include="App.Release.config" />
Stellen Sie zunächst die Build-Aktion für alle ein Content.
Machen Sie als Nächstes alle konfigurationsspezifischen Dateien von der Hauptdatei abhängig,App.config damit Visual Studio sie wie Designer- und CodeBehind-Dateien gruppiert.
Ersetzen Sie XML oben durch das folgende:
<Content Include="App.config" />
<Content Include="App.Debug.config" >
<DependentUpon>App.config</DependentUpon>
</Content>
<Content Include="App.Release.config" >
<DependentUpon>App.config</DependentUpon>
</Content>
4. Aktivieren Sie Transformations Magic (nur für Visual Studio-Versionen vor VS2017 erforderlich ).
Am Ende der Datei nach
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
und vor dem Finale
</Project>
Fügen Sie das folgende XML ein:
<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Web\Microsoft.Web.Publishing.Tasks.dll" />
<Target Name="CoreCompile" Condition="exists('app.$(Configuration).config')">
<!-- Generate transformed app config in the intermediate directory -->
<TransformXml Source="app.config" Destination="$(IntermediateOutputPath)$(TargetFileName).config" Transform="app.$(Configuration).config" />
<!-- Force build process to use the transformed configuration file from now on. -->
<ItemGroup>
<AppConfigWithTargetPath Remove="app.config" />
<AppConfigWithTargetPath Include="$(IntermediateOutputPath)$(TargetFileName).config">
<TargetPath>$(TargetFileName).config</TargetPath>
</AppConfigWithTargetPath>
</ItemGroup>
</Target>
Jetzt können Sie das Projekt neu laden, erstellen und App.configTransformationen genießen !
Zu Ihrer Information
Stellen Sie sicher, dass Ihre App.*.configDateien das richtige Setup haben:
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<!--magic transformations here-->
</configuration>