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 Debug
ve Release
yapılandırmaları böylece dosyalarınızı adlandırın App.Debug.config
ve 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.config
ve App.*.config
baş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.config
bö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.config
dönüşümlerin tadını çıkarabilirsiniz !
Bilginize
App.*.config
Dosyaları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>