मैंने कई समाधानों की कोशिश की और यहाँ सबसे सरल है जो मैंने व्यक्तिगत रूप से पाया।
दान टिप्पणी में कहा कि मूल पोस्ट के अंतर्गत आता है ओलेग Sych - धन्यवाद, ओलेग!
यहाँ निर्देश हैं:
1. प्रोजेक्ट के लिए प्रत्येक कॉन्फ़िगरेशन के लिए एक XML फ़ाइल जोड़ें।
आमतौर पर आपके पास होगा Debug
और Release
कॉन्फ़िगरेशन इसलिए आपकी फ़ाइलों को नाम दें App.Debug.config
और App.Release.config
। मेरे प्रोजेक्ट में, मैंने प्रत्येक प्रकार के वातावरण के लिए एक कॉन्फ़िगरेशन बनाया, ताकि आप उसके साथ प्रयोग करना चाहें।
2. अनलोड प्रोजेक्ट और संपादन के लिए .csproj फ़ाइल खोलें
विजुअल स्टूडियो आपको संपादक में .csproj फ़ाइलों को संपादित करने की अनुमति देता है - आपको पहले परियोजना को अनलोड करने की आवश्यकता है। फिर उस पर राइट-क्लिक करें और Edit <ProjectName> .csproj चुनें ।
3. बाइंड ऐप। *। फ़ाइलों को मुख्य App.config में कॉन्फ़िगर करें
प्रोजेक्ट फ़ाइल अनुभाग ढूंढें जिसमें सभी App.config
और App.*.config
संदर्भ शामिल हैं। आप देखेंगे कि उनके निर्माण कार्य निम्नलिखित हैं None
:
<None Include="App.config" />
<None Include="App.Debug.config" />
<None Include="App.Release.config" />
सबसे पहले, उन सभी के लिए बिल्ड एक्शन सेट करें Content
।
इसके बाद, सभी कॉन्फ़िगरेशन-विशिष्ट फ़ाइलों को मुख्य पर निर्भर करेंApp.config
ताकि विज़ुअल स्टूडियो समूह उन्हें पसंद करें जैसे कि यह डिजाइनर और कोड-पीछे की फाइलें करता है।
नीचे दिए गए एक के साथ ऊपर XML बदलें:
<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. परिवर्तन परिवर्तनों को सक्रिय करें (केवल विजुअल स्टूडियो संस्करणों के लिए आवश्यक है VS2017 )
के बाद फ़ाइल के अंत में
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
और फाइनल से पहले
</Project>
निम्नलिखित XML डालें:
<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>
अब आप परियोजना को फिर से लोड कर सकते हैं, इसका निर्माण कर सकते हैं और App.config
परिवर्तनों का आनंद ले सकते हैं !
FYI करें
सुनिश्चित करें कि आपकी App.*.config
फ़ाइलों में इस तरह सही सेटअप है:
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<!--magic transformations here-->
</configuration>