Birkaç çözüm denedim ve işte şahsen bulduğum en basit çözüm.
Dan o Açıklamalarda belirttiği orijinal yayın aittir Oleg Sych - teşekkürler, Oleg!
İşte talimatlar:
1. Projeye her yapılandırma için bir XML dosyası ekleyin.
Genellikle sahip olacak Debugve Releaseyapılandırmaları böylece dosyalarınızı adlandırın App.Debug.configve App.Release.config. Projemde, her tür ortam için bir yapılandırma oluşturdum, bu yüzden bunu denemek isteyebilirsiniz.
2. Projeyi kaldırın ve düzenlemek için .csproj dosyasını açın
Visual Studio .csproj dosyalarını doğrudan düzenleyicide düzenlemenize olanak tanır ; önce projeyi kaldırmanız yeterlidir. Ardından üzerine sağ tıklayın ve <ProjeAdı> .csproj Düzenle'yi seçin .
3. App. *. Yapılandırma dosyalarını ana App.config dosyasına bağlayın
Tümünü App.configve App.*.configbaşvuruları içeren proje dosyası bölümünü bulun . Oluşturma eylemlerinin şu şekilde ayarlandığını göreceksiniz None:
<None Include="App.config" />
<None Include="App.Debug.config" />
<None Include="App.Release.config" />
İlk olarak, hepsi için derleme eylemi ayarlayın Content.
Ardından, yapılandırmaya özgü tüm dosyaları ana dosyaya bağımlı hale getirin , App.configböylece Visual Studio onları tasarımcı ve arka planda kodlama dosyaları gibi gruplandırır.
Yukarıdaki XML'i aşağıdaki ile değiştirin:
<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. Dönüşüm sihrini etkinleştir (yalnızca VS2017 öncesi Visual Studio sürümleri için gereklidir )
Sonunda dosyanın sonunda
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
ve finalden önce
</Project>
aşağıdaki XML'i ekleyin:
<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>
Artık projeyi yeniden yükleyebilir, inşa edebilir ve App.configdönüşümlerin tadını çıkarabilirsiniz !
Bilginize
App.*.configDosyalarınızın aşağıdaki gibi doğru kuruluma sahip olduğundan emin olun :
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<!--magic transformations here-->
</configuration>