SlowCheetah प्लगइन का उपयोग करें । SlowCheetah का उपयोग कैसे करें के अधिक विकल्पों और विवरणों के लिए पढ़ते रहें।
जैसा कि आप पहले ही देख चुके हैं, लाइब्रेरी प्रकार (.dll) परियोजना के लिए अलग-अलग कॉन्फिग फाइलों का उपयोग करने का कोई डिफ़ॉल्ट और आसान तरीका नहीं है । इसका कारण यह है कि वर्तमान सोच है: "आपको जरूरत नहीं है"! फ्रेमवर्क डेवलपर्स को लगता है कि आपको निष्पादन योग्य फ़ाइल के लिए कॉन्फ़िगरेशन की आवश्यकता है: यह एक कंसोल, डेस्कटॉप, वेब, मोबाइल ऐप या कुछ और हो। यदि आप एक dll के लिए कॉन्फ़िगरेशन प्रदान करना शुरू करते हैं , तो आप कुछ के साथ समाप्त हो सकते हैं जिसे मैं एक नरक नरक कह सकता हूं । आप अब (आसानी से) समझ नहीं सकते हैं कि क्यों और इस चर में ऐसे अजीब मूल्य हैं जो कहीं से भी प्रतीत होते हैं।
"पकड़ो", - आप कह सकते हैं, "लेकिन मुझे अपने एकीकरण / यूनिट परीक्षण के लिए इसकी आवश्यकता है, और यह एक पुस्तकालय है!"। और यह सच है और यह वह है जो आप कर सकते हैं (केवल एक को चुनें, मिश्रण न करें):
1. SlowCheetah - वर्तमान विन्यास फाइल को रूपांतरित करता है
आप SlowCheetah स्थापित कर सकते हैं - एक विजुअल स्टूडियो प्लग-इन जो आपके लिए सभी निम्न स्तर XML poking (या परिवर्तन) करता है। जिस तरह से यह काम करता है, संक्षेप में:
- SlowCheetah इंस्टॉल करें और Visual Studio (Visual Studio> Tools> Extensions and Updates ...> Online> Visual Studio Gallery> "Slow Cheetah" की खोज करें) को पुनरारंभ करें।
- अपने समाधान कॉन्फ़िगरेशन को परिभाषित करें ( डिबग और रिलीज़ डिफ़ॉल्ट रूप से वहां हैं), आप अधिक जोड़ सकते हैं ( समाधान एक्सप्लोरर में समाधान पर सही क्लिक करें > कॉन्फ़िगरेशन प्रबंधक ... > सक्रिय समाधान कॉन्फ़िगरेशन > नया ...
- यदि आवश्यक हो तो एक कॉन्फ़िग फ़ाइल जोड़ें
- कॉन्फ़िग फ़ाइल> ट्रांसफ़ॉर्म जोड़ें पर राइट क्लिक करें
- यह रूपांतरण फ़ाइलें बनाएगा - आपके कॉन्फ़िगरेशन के अनुसार
- ट्रांस्फ़ॉर्म फ़ाइल्स इंजेक्टर / म्यूटेटर के रूप में काम करते हैं, उन्हें मूल कॉन्फ़िग फ़ाइल में XML कोड की आवश्यकता होती है और नई लाइनों को इंजेक्ट करते हैं या आवश्यक मान को म्यूट करते हैं, जो भी आप इसे करने के लिए कहते हैं।
2. .proj फ़ाइल के साथ फिडेल - कॉपी-एक नया कॉन्फिग फाइल का नाम बदल देता है
मूल रूप से यहां से लिया गया है । यह एक कस्टम MSBuild कार्य है जिसे आप Visual Studio .proj फ़ाइल में एम्बेड कर सकते हैं । प्रोजेक्ट फ़ाइल में निम्न कोड को कॉपी और पेस्ट करें
<Target Name="AfterBuild">
<Delete Files="$(TargetDir)$(TargetFileName).config" />
<Copy SourceFiles="$(ProjectDir)\Config\App.$(Configuration).config"
DestinationFiles="$(TargetDir)$(TargetFileName).config" />
</Target>
अब नामक प्रोजेक्ट में एक फ़ोल्डर बनाएं Config
और वहां नई फाइलें जोड़ें: App.Debug.config , App.Release.config और इतने पर। अब, आपके कॉन्फ़िगरेशन के आधार पर, विज़ुअल स्टूडियो एक Config
फ़ोल्डर से कॉन्फिगर फाइल को उठाएगा, और इसे आउटपुट डायरेक्टरी में कॉपी-रीनेम करेगा। इसलिए यदि आपके पास PatternPA.Test.Integration प्रोजेक्ट और डिबग कॉन्फिगरेशन का चयन किया गया है, तो निर्माण के बाद आउटपुट फ़ोल्डर में आपको एक PatternPA.Test.Integration.dll.config फ़ाइल मिलेगी जिसे Config\App.Debug.config
बाद से कॉपी किया गया और नाम दिया गया।
ये कुछ नोट हैं जिन्हें आप कॉन्फिग फाइलों में छोड़ सकते हैं
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!-- This file is copied and renamed by the 'AfterBuild' MSBuild task -->
<!-- Depending on the configuration the content of projectName.dll.config
is fully substituted by the correspondent to build configuration file
from the 'Config' directory. -->
</configuration>
विजुअल स्टूडियो में आप कुछ इस तरह से हो सकते हैं
3. Visual Studio के बाहर स्क्रिप्टिंग फ़ाइलों का उपयोग करें
प्रत्येक बिल्ड टूल (जैसे NAnt , MSBuild ) कॉन्फ़िगरेशन के आधार पर कॉन्फिगर फाइल को बदलने की क्षमता प्रदान करेगा। यह उपयोगी है यदि आप एक निर्माण मशीन पर अपना समाधान बनाते हैं, जहां आपको उत्पाद को रिलीज़ करने के लिए क्या और कैसे तैयार करना है, इस पर अधिक नियंत्रण रखने की आवश्यकता है।
उदाहरण के लिए आप किसी भी विन्यास फाइल को बदलने के लिए वेब प्रकाशन dll के कार्य का उपयोग कर सकते हैं
<UsingTask AssemblyFile="..\tools\build\Microsoft.Web.Publishing.Tasks.dll"
TaskName="TransformXml"/>
<PropertyGroup>
<!-- Path to input config file -->
<TransformInputFile>path to app.config</TransformInputFile>
<!-- Path to the transformation file -->
<TransformFile>path to app.$(Configuration).config</TransformFile>
<!-- Path to outptu web config file -->
<TransformOutputFile>path to output project.dll.config</TransformOutputFile>
</PropertyGroup>
<Target Name="transform">
<TransformXml Source="$(TransformInputFile)"
Transform="$(TransformFile)"
Destination="$(TransformOutputFile)" />
</Target>