सारांश: नाम बदलने के साथ VS2019 में नाम बदलें और जीआईटी के इतिहास को बनाए रखें, आर # थोड़ा सा लाभ उठाएं, स्वत: निर्भर परियोजना संदर्भ अद्यतन (कई परियोजनाओं के साथ स्लैन के लिए महत्वपूर्ण, हमारे पास> 200 है)
मैं Visual Studio 2019 में C # प्रोजेक्ट का नाम बदलने और स्थानांतरित करने के लिए निम्न चरणों का उपयोग कर रहा हूं। यह प्रक्रिया नाम स्थान को समायोजित करने के लिए R # का उपयोग करती है। Git का इतिहास "git mv" (इतिहास जोड़ने / हटाने से बचने) के द्वारा किया जाता है।
दो चरणों: 1) जगह में परियोजना का नाम बदलें और 2) परियोजना को स्थानांतरित करें।
( बेस 2 री अनलोडिंग प्रोजेक्ट्स से टिप का उपयोग करता है ।)
नाम बदलें
- वीएस | समाधान एक्सप्लोरर | राइट क्लिक परियोजना | नाम बदलें (उदाहरण के लिए, Utils.Foo से फू)।
- वीएस | समाधान एक्सप्लोरर | राइट क्लिक परियोजना | गुण | असेंबली का नाम, डिफ़ॉल्ट नाम स्थान और असेंबली सूचना फ़ील्ड बदलें
- इसी परीक्षण परियोजना के लिए 1 और 2 करें (जैसे, Utils.Foo.Tests)
- वीएस | समाधान एक्सप्लोरर | राइट-क्लिक प्रोजेक्ट्स (उत्पादन और परीक्षण) | रिफ्लेक्टर | नाम स्थान समायोजित करें
- XAML फाइलें जो परियोजना का उपयोग करती हैं उन्हें अद्यतन करने की आवश्यकता हो सकती है (मैन्युअल रूप से या एक उपयुक्त वैश्विक खोज और प्रतिस्थापन के साथ)
- सभी का पुनर्निर्माण करें
- कमिट !! (चाल से पहले परिवर्तन करने के लिए)
नोट: विंडोज एक्सप्लोरर में फ़ोल्डर इस बिंदु पर पुराना नाम है (उदाहरण के लिए, Utils.Foo)। यह कदम चरणों में तय किया गया है।
चाल
यह विधि: 1) git के इतिहास को बनाए रखती है, 2) R # को नाम स्थान को समायोजित करने के लिए एटोमिक और 3) अपडेट करती है आश्रित प्रोजेक्ट्स एन मस्से (निर्भर स्ले और csproj फ़ाइलों के थकाऊ मैनुअल संपादन से बचा जाता है)।
समाधान में सभी परियोजनाओं को लोड करें (ताकि लक्ष्य परियोजना को हटाने से आश्रित परियोजनाओं में परिवर्तन को ट्रिगर न किया जाए)
वीएस | समाधान के तहत सभी समाधान फ़ोल्डरों का चयन करें | राइट-क्लिक करें अनलोड प्रोजेक्ट्स
git का उपयोग करके फ़ोल्डर ले जाएं (इसलिए इतिहास बनाए रखा गया है)
a) 2019 के लिए ओपन डेवलपर कमांड प्रॉम्प्ट
बी) जीआईटी स्थिति ("कुछ भी नहीं करने के लिए, स्वच्छ पेड़ काम करने के लिए" वर्णन करने के लिए)
c) git mv प्रोजेक्ट जैसे, git mv "C: \ Code \ foo \ foo \ Utils.Foo" "C: \ Code \ Foo"
घ) परिवर्तन को देखने / सत्यापित करने के लिए गिट स्थिति
- प्रोजेक्ट निकालें
वीएस | समाधान एक्सप्लोरर | प्रोजेक्ट का चयन करें | राइट क्लिक करें | निकालें (चूंकि सभी परियोजनाएं अनलोड हैं, यह निर्भर परियोजनाओं में इसके संदर्भ को सही ढंग से नहीं हटाएगा)
- प्रोजेक्ट को फिर से जोड़ें (समाधान एक्सप्लोरर में पेड़ में नए स्थान पर)
a) वी.एस. समाधान एक्सप्लोरर | लक्ष्य लक्ष्य मूल फ़ोल्डर | राइट क्लिक करें | जोड़ें | मौजूदा परियोजना
- सभी परियोजनाओं को पुनः लोड करें
महत्वपूर्ण: पुष्टि करें कि * निर्भर परियोजनाओं के लिए .csproj फ़ाइलों को अद्यतन किया गया है।
(वी.एस. टीम एक्सप्लोरर | परिवर्तन। किसी भी निर्भर csproj सूचीबद्ध डबल क्लिक करें। निरीक्षण-सत्यापित ProjectReference पथ परिवर्तन)
- एकल * .csproj फ़ाइल में मैन्युअल रूप से पथ को ठीक करें
रास्तों को ठीक करने के लिए नोटपैड ++ (या अन्य टेक्स्ट एडिटर) का उपयोग करें। अक्सर यह एक सरल खोज-और-प्रतिस्थापन (जैसे, ../../../../ से ../../) के साथ किया जा सकता है।
यह होगा अपडेट ...
a) GlobalAssmeblyInfo.cs संदर्भ
b) पैकेजों के लिए पथ
ग) निर्भरता वैधता आरेख फ़ाइलों के लिए पथ
घ) नियमों के रास्तों के लिए पथ (जैसे, <CodeAnalysisRuleSet>..\..\..\..\SolutionDependencyValidation\IgnoreWarnings.ruleset</CodeAnalysisRuleSet>
)
- समाधान बंद करें और फिर से खोलें (परियोजना संदर्भों को अच्छे आकार में लाने के लिए)
सेव ऑल, क्लोज सॉल्यूशन, मैं बिन और ओब्जेक्ट फोल्डर को डिलीट करना पसंद करता हूं इतिहास की सफाई के लिए, री-ओपन सॉल्यूशन
- मान्य
a) वी.एस. टीम एक्सप्लोरर | परिवर्तन
i) स्टैन्ड चेंजेस को देखना चाहिए, जो कि ii को स्थानांतरित करने वाली फाइलों को प्रकट करते हैं) को आश्रित प्रोजेक्ट्स (* .csproj) को देखना चाहिए जो कि अच्छी तरह से अपडेट किए गए रिव्यू थे csproj में अंतर है और ध्यान दें कि रास्तों को खूबसूरती से अपडेट किया गया है !! (यह वह जादू है जो पाठ संपादक का उपयोग करके मैन्युअल रूप से csproj फ़ाइलों को अपडेट करने से बचा जाता है)
b) विंडोज एक्सप्लोरर में, सत्यापित करें कि पुराना स्थान खाली है
c) क्लीन सॉल्यूशन, सोल्यूशन सोल्यूशन, रन यूनिट टेस्ट, स्ल्न में ऐप्स लॉन्च करें।
- कमिट !!