मेरे पास एक छोटी परियोजना है जिसके तहत मैं AppHarbor के साथ प्रयोग कर रहा हूं। आप में से उन लोगों के लिए जो इससे परिचित नहीं हैं, ऐपहार्बर आपको क्लाउड में एएसपी.नेट एमवीसी परियोजनाओं को स्वचालित रूप से बनाने और तैनात करने की अनुमति देता है, एक विशिष्ट गिट रिमोट जोड़कर और फिर उस प्रोजेक्ट/स्रोत को उस रिमोट पर दबाकर।AppHarbor के साथ काम करते समय, मैं विकास और लाइव कॉन्फ़िगरेशन फ़ाइलों को कैसे व्यवस्थित कर सकता हूं?
जिस तरह से मैं वर्तमान में काम कर रहा हूं वह यह है कि मेरे पास GitHub पर एक मास्टर गिट भंडार होगा, जिसे मैंने अपनी विकास मशीन पर क्लोन किया था। मैं फिर अपनी कामकाजी प्रतिलिपि में AppHarbor रिमोट जोड़ता हूं। मैं अपने बदलाव कर दूंगा, गिटहब को हर कुछ सुरक्षित रख-रखाव के लिए प्रतिबद्ध करता हूं, और जब मैं एक नया संस्करण तैनात करने के लिए तैयार हूं, तो मैं इसे ऐपहार्बर तक दबा सकता हूं।
हालांकि यह एक अच्छा वर्कफ़्लो है, यह कॉन्फ़िगरेशन फ़ाइलों से संबंधित मेरे लिए एक नई समस्या लाता है। मैं जो करता था वह Web.config
को स्रोत नियंत्रण से बाहर करना है और इसके बजाय Web.config.example
नामक फ़ाइल में चेक करें, जिसमें सभी सही कुंजी शामिल हैं लेकिन डमी मानों के साथ। मैं बस अपनी dev मशीन पर उस फ़ाइल की प्रतिलिपि बनाउंगा, .example
एक्सटेंशन को हटा दूंगा और मूल्यों को सूट करने के लिए संपादित करूँगा।
जब यह तैनाती के लिए आया, तो मैं Web.config.live
नामक एक और प्रतिलिपि बनाउंगा, सर्वर के लिए सही वाले मानों को प्रतिस्थापित करें, इसे अपलोड करें और .live
एक्सटेंशन को हटा दें।
यह है कि अगर Web.config
नहीं स्रोत नियंत्रण में, जब मैं AppHarbor करने के लिए धक्का, परियोजना काम नहीं करेगा (क्योंकि यह उचित विन्यास सूचना की कमी है) है। फिर भी मैं नहीं चाहता कि लाइव कनेक्शन स्ट्रिंग को गिटहब पर सार्वजनिक रूप से देखा जा सके, जो कि अगर मैंने कभी भी मास्टर रेपो में Web.config
को धक्का दिया था।
यहां मेरे विकल्प क्या हैं? मैं किसी भी सलाह के लिए आभारी होंगे।
धन्यवाद, यह सहायक है, हालांकि मैं अभी भी इस बारे में थोड़ा उलझन में हूं कि मैं इसका उपयोग कैसे करूंगा। जिस तरह से मैं इसे समझता हूं, मैं एक 'Web.config' जोड़ता हूं जिसमें कनेक्शन स्ट्रिंग है जो मैं अपने _development_ मशीन पर अपने गिट रेपो में उपयोग करता हूं, फिर जब मैं ऐपहार्बर पर धक्का देता हूं तो यह स्वचालित कनेक्शन स्ट्रिंग के साथ स्वचालित रूप से उस कनेक्शन स्ट्रिंग को प्रतिस्थापित करेगा जब तक वे समान रूप से नामित हैं)। क्या ये सही है? –
कोई बात नहीं, मुझे अब यह काम मिल गया है। धन्यवाद! –