2011-12-01 11 views
13

के साथ एकल web.config का उपयोग कर एकाधिक डेवलपर्स मैं एक एएसपी.NET एमवीसी वेब ऐप बना रहा हूं। टीम पर कई डेवलपर हैं जिन्हें web.config फ़ाइल में अलग-अलग सेटिंग्स की आवश्यकता है। ये सेटिंग्स डेटाबेस कनेक्शन और स्थानीय लिनक्स वर्चुअल मशीन के लिए हैं जिन्हें एक्सेस किया जाना आवश्यक है। ऐसी कुछ चीजें हैं जिन्हें हमें भविष्य में जोड़ने की आवश्यकता होगी। एक पद्धति क्या है जिसका उपयोग प्रत्येक डेवलपर के लिए वेब.कॉन्फिग में अपनी कस्टम सेटिंग्स को स्रोत नियंत्रण के लिए प्रतिबद्ध होने के डर के बिना किया जा सकता है?एकाधिक सेटिंग्स

परिनियोजन विन्यास काम नहीं करेगा क्योंकि वे स्थानीय विकास वीएस वेब सर्वर के माध्यम से साइट चला रहे हैं। हम अपने पर्यावरण में विभिन्न चरणों में तैनाती के लिए तैनाती विन्यास का उपयोग करेंगे।

+2

... और आपका स्रोत नियंत्रण है? –

+0

@AustinSalonen हम गिट –

+0

का उपयोग कर रहे हैं क्या आपने web.config रूपांतरणों के साथ प्रयास किया है? – frennky

उत्तर

7

कॉन्फ़िगरेशन XML फ़ाइल में अधिकांश अनुभाग आपको configSource attribute का उपयोग करने की अनुमति देते हैं। हमने सामान्य रूप से dev-संशोधित अनुभागों को एक अलग फ़ाइल में रखने के लिए इस विशेषता का उपयोग किया। इनमें से प्रत्येक सामान्य रूप से संशोधित अनुभागों में एक अलग * .dev.config और * .prd.config फ़ाइलें होंगी। * .dev.config फ़ाइलों को स्रोत नियंत्रण (गिट) द्वारा अनदेखा किया गया था।

तब उत्पादन परिनियोजन * .prd.config फ़ाइलों का उपयोग करने के लिए configSource विशेषता सेट करेगा। फिर इसका मतलब है कि आपको कॉन्फ़िगरेशन के दो सेट अद्यतित रखने की आवश्यकता है। मैंने तत्व स्तर पर * .prd.config और * .dev.config फ़ाइलों को सिंक में रखने के लिए समाधान पर काम करना शुरू किया, लेकिन इसे समाप्त करने का समय कभी नहीं मिला।

+0

हाँ, फ़ाइलों को सिंक में रखने की चुनौती ऐसी चीज है जिसे मैं सौदा करने के लिए तैयार हूं क्योंकि बाकी के बाकी हिस्सों में इतना आसान है! –

4

मुझे यकीन नहीं है कि यह सबसे उच्च तकनीक समाधान है, लेकिन मैं बस अपना web.config "web.config.sample" कहता हूं, और web.config को svn में जोड़ें: अनदेखा करें। यह डेवलपर्स को गलती से जांचने से रोकता है।

जब web.config में कोई नई कुंजी जोड़ दी जाती है, तो आपको इसे web.config.sample में डुप्लिकेट करना याद रखना होगा।

जब कोई डेवलपर एक नई प्रतिलिपि जांचता है, तो उन्हें बस इस फ़ाइल का नाम बदलना और कॉन्फ़िगर करना होगा। मैंने कई कंपनियों में काम किया है, और हमने हर बार ऐसा किया है, इसलिए मुझे यकीन नहीं है कि ऐसा करने का कोई और तरीका है या नहीं।

संपादित करें: आप यह सुनिश्चित करने के लिए प्री-प्रतिबद्ध हुक भी सेट कर सकते हैं कि किसी भी निर्देशिका में web.config में कोई भी चेक नहीं किया गया है जिसमें web.config.sample भी शामिल है।

संपादित करें # 2: आप एक पोस्ट-प्रतिबद्ध हुक भी सेट कर सकते हैं जो web.config.sample अद्यतन होने पर शामिल सभी को ई-मेल करेगा, इसलिए जब वे अनुपलब्ध कॉन्फ़िगरेशन कुंजी ढूंढते हैं तो उनके ऐप्स विफल होने लगते हैं। मैं भविष्य में ऐसा करने जा रहा हूं।

संबंधित मुद्दे