मैं वर्तमान में कोड वितरण के लिए सबवर्जन का उपयोग करके कई डेवलपर्स के साथ एक एएसपी.NET प्रोजेक्ट पर काम कर रहा हूं, लेकिन फिलहाल यह पूरी तरह से गड़बड़ हो गया है। वह व्यक्ति जिसने सबवर्जन रिपॉजिटरी सेट अप किया है, में कॉन्फ़िगरेशन फ़ाइलें शामिल हैं जो उनके कंप्यूटर, बिन \ * निर्देशिकाओं और अन्य ऐसी चीजों के लिए विशिष्ट हैं।सबवर्जन में एएसपी.नेट वेबसाइट को संग्रहीत करने के लिए सर्वोत्तम अभ्यास?
मैं, जिस व्यक्ति को इस भंडार को देखना है और इसे अपने कंप्यूटर पर चलाने के लिए जाना है, मैं इससे बहुत निराश हूं क्योंकि इसे मुझे संकलित करने के लिए इसे हल करने में थोड़ी देर लग गई है। अब मैं अपनी कंपनी में तकनीकी नेता को भेजने के लिए सबवर्जन दिशानिर्देशों के लिए एक दस्तावेज़ लिखने के बारे में सोच रहा हूं ताकि हम प्रक्रिया को मानकीकृत कर सकें और इस तरह की समस्याओं से बच सकें।
मैं क्या देख रहा हूँ के दिशा-निर्देशों पर इनपुट है। यहाँ उनके लिए शुरुआत है, और उम्मीद है कि हम कुछ इसे से बाहर अच्छा बना सकते हैं:
फ़ाइल संरचना तीसरे पक्ष के पुस्तकालयों का निर्माण उत्पादन निर्देशिका के बाहर में जाँच (क्योंकि वे नहीं होगा करने के लिए स्थापित किया जाना चाहिए भंडार में शामिल है।) इस निर्देशिका का नाम "पुस्तकालय" होना चाहिए।
कोई मशीन विशिष्ट फ़ाइलों सबवर्सन में शामिल किया जाना चाहिए। इसलिए, Web.config का केवल एक टेम्पलेट चेक किया गया है, जिसे डेवलपर्स द्वारा उनकी मशीन के अनुरूप अनुकूलित किया जाता है। यह व्यवहार डिफ़ॉल्ट रूप से विजुअल स्टूडियो 2010 में शामिल है और व्यक्तिगत कॉन्फ़िगरेशन फ़ाइलें (
Web.Local.config
) स्वचालित रूप से टेम्पलेट (Web.config
) लागू होती है। हालांकि स्थानीय कॉन्फ़िगरेशन फ़ाइल को सबवर्सन में शामिल नहीं किया जाना चाहिए, जब तक कि यह एक विशिष्ट मशीन के लिए लागू होता है।समाधान और परियोजना फ़ाइलों को किसी निरपेक्ष पथ नहीं होनी चाहिए।
एक इग्नोर लिस्ट में स्थापित किया जाना चाहिए।
' /trunk/ Libraries/ ThirdParty.dll MyClassLibrary/ bin/ [Ignore] obj/ [Ignore] Properties/ AssemblyInfo.cs SomeClass.cs MyClassLibrary.csproj - Holds references to third-party libraries. For example: ../Libraries/ThirdParty.dll MyWebApplication/ bin/ ThirdParty.dll [Ignore; copied by build process] ThirdParty.dll.refresh - Contains "../Libraries/ThirdParty.dll" Default.aspx Default.aspx.cs Web.config [Ignore] Web.config.template MySolution.sln - Holds list of projects. - Has reference information for projects. '
एक वैकल्पिक
Web.config.template
होगा का उपयोग कर रहे हैं: वेब साइट और एक तीसरे पक्ष के पुस्तकालय के लिए विशिष्ट एक वर्ग पुस्तकालय के साथ एक ASP.NET 2.0 वेब साइट के लिए' *.user obj '
उदाहरण फ़ाइल संरचना: के साथ शुरू करो
Web.config
सेLocal.config
फ़ाइल को शामिल करना होगा, लेकिन यह कम लचीला हो सकता है।एक वेब साइट परियोजना एक वेब अनुप्रयोग परियोजना के बजाय का उपयोग करते समय, संदर्भ प्रोजेक्ट फ़ाइल में बजाय .refresh फ़ाइलों में संग्रहीत किया जाएगा, ताकि bin/फ़ोल्डर नजरअंदाज कर दिया जाएगा।
किसी उपरोक्त सुझावों में त्रुटियों देख सकते हैं? क्या कुछ याद आ रही है? क्या किसी को अनदेखा सूची के लिए सुझाव हैं? मैंने अभी कुछ प्रविष्टियों के साथ शुरुआत की है।
2.0 वेब के लिए परियोजनाओं बाहरी विधानसभा संदर्भ/bin/निर्देशिका अकेले द्वारा निर्धारित होते हैं , इसलिए मुझे (AFAIK) .refresh फ़ाइलों को/bin/निर्देशिका में होना चाहिए। एसवीएन को बिन/* डीएलएल को अनदेखा करना संभव है, इसलिए यह कोई समस्या नहीं होनी चाहिए। मेरा इरादा कभी भी एसवीएन में बिल्ड आउटपुट शामिल नहीं करना था, यह वही है जो इन दिशानिर्देशों को रोकने के लिए हैं। मैंने वास्तव में प्रारंभ में "लोकल.कॉन्फिग" फ़ाइल आयात करने के लिए मेरे दिशानिर्देश लिखे थे, लेकिन चूंकि कॉन्फ़िगर-फ़ाइल में इतने सारे अनुभाग हैं, मैंने सोचा कि फ़ाइल की प्रतिलिपि बनाना बेहतर हो सकता है जिसे डेवलपर द्वारा कॉन्फ़िगर किया जा सकता है । – Blixt
अहह - मैं उन परियोजनाओं के बिना उन 2.0 "वेब साइट" परियोजनाओं को भूल गया। मैंने उन्हें कभी पसंद नहीं किया। लेकिन आपके पास एक विकल्प है (वेब एप्लिकेशन को वीएस2005 एसपी 1 में पुन: प्रस्तुत किया गया था)। यदि आप "वेब साइट" बनाते हैं, तो आपके पास कोई प्रोजेक्ट फ़ाइल नहीं है, और बिन डायर आपको संदर्भ देता है, या आप एक "वेब एप्लिकेशन" बना सकते हैं जहां संदर्भ परियोजना प्रोजेक्ट द्वारा परिभाषित किए जाते हैं, और फिर आप पूरे बिन को अनदेखा कर सकते हैं फ़ोल्डर। लेकिन मुझे svn में "वेब साइट" प्रोजेक्ट रखने के साथ अधिक अनुभव नहीं है। – Pete
पीट, आप अपने कनेक्शन स्ट्रिंग को एक अलग कॉन्फ़िगरेशन फ़ाइल में भी डाल सकते हैं (जब तक कि आप अभी भी .NET 1.1 का उपयोग नहीं कर रहे हैं)। बस ' ' का उपयोग करें। –