एक अलग फ़ोल्डर में विजुअल स्टूडियो मूव प्रोजेक्ट


182

मैं किसी प्रोजेक्ट को Visual Studio में किसी भिन्न फ़ोल्डर में कैसे ले जाऊँ? मैं अपनी परियोजनाओं में इस संरचना के लिए उपयोग किया जाता हूं।

-- app
---- Project.Something
---- Project.SomethingElse

मैं पूरे नामस्थान का नाम बदलना चाहता हूँ, SomeNlse to SomeNew, ऐसा करने का सबसे अच्छा तरीका क्या है (मैन्युअल रूप से .sln फ़ाइल में जाने के बिना)?


क्या आप अपने स्रोत नियंत्रण प्रदाता के रूप में TFS का उपयोग कर रहे हैं?
बरमो

क्या आप केवल फ़ोल्डर या पूरी परियोजना का नाम बदलना चाहते हैं?
चार्ल्स गैरिजेंट

प्रोजेक्ट, फ़ोल्डर और नेमस्पेस (एस)।
Egor Pavlikhin

जवाबों:


174

समाधान एक्सप्लोरर विंडो में राइट-क्लिक करके और निकालें का चयन करके प्रोजेक्ट को अपने समाधान से निकालें। जहाँ भी आप जाना चाहते हैं, पूरे प्रोजेक्ट फ़ोल्डर को उपनिर्देशिकाओं सहित स्थानांतरित करें। प्रोजेक्ट को अपने समाधान में वापस जोड़ें।

नाम स्थान कुछ पूरी तरह से अलग है, बस स्रोत कोड संपादित करें।


6
मैंने यही किया है, लेकिन मुझे लगा कि पूरी परियोजना को हटाए बिना ही वह सब करने का एक तरीका है, जो मुझे फिर से सभी आश्रितों को फिर से जोड़ देता है।
ईगोर पावलखिन

31
समाधान से सभी आश्रित परियोजनाओं को उतारें, जिस परियोजना को आप स्थानांतरित करना चाहते हैं उसे हटाने से पहले। इस तरह, वे निष्कासन का पता नहीं लगाते हैं और परियोजना के संदर्भ बरकरार रहते हैं। जब आप प्रोजेक्ट को स्थानांतरित करते हैं और समाधान में फिर से जोड़ते हैं, तो आप निर्भर परियोजनाओं को फिर से लोड कर सकते हैं।
बेस 2

13
टीएफएस में एक फ़ाइल को हटाना न भूलें, और फिर इसे वापस टीएफएस में किसी अन्य निर्देशिका स्थान या परियोजना में वापस भेज दें, इससे फ़ाइल इतिहास को हटा दिया जाता है।
पॉल

मैं बदलावों के इतिहास को खोए बिना इसे करना चाहता हूं इसलिए जब मैं चाहूं तब भी तुलना कर सकता हूं।
user734028

196

मैंने परियोजना को हटाने और फिर से जोड़ने के सुझाव की कोशिश की, लेकिन फिर निर्भरता को ठीक करना एक दर्द हो सकता है।

मैं इस दृष्टिकोण का उपयोग करता हूं:

  1. प्रोजेक्ट फ़ोल्डर ले जाएँ।
    • यदि परियोजना स्रोत नियंत्रण में है, तो स्रोत नियंत्रण आदेशों का उपयोग करके चाल करें।
  2. टेक्स्ट एडिटर में समाधान फ़ाइल को संपादित करें। केवल एक रास्ता होना चाहिए जिसे आपको बदलना होगा।

निश्चित रूप से आसान! लेकिन, जब मैं टेक्स्ट एडिट का उपयोग करके समाधान को स्थानांतरित और संपादित करता हूं, तो समाधान फ़ाइल एक नियमित टेक्स्ट फ़ाइल की तरह नीचे दिखाई देती है। मुझे इससे छुटकारा कैसे मिलेगा?
अब्रील

2
"यदि परियोजना स्रोत नियंत्रण में है, तो स्रोत नियंत्रण आदेशों का उपयोग करते हुए कदम बढ़ाएँ।" .. क्या आप समझा सकते हैं कि यह कैसे करना है?
अनीश वी

3
@ परीक्षा के लिए, यदि आप Git का उपयोग करते हैं, तो git mv ...इसके बजाय टाइप करें mv ...git-mvअधिक जानकारी के लिए प्रलेखन देखें ।
cubuspl42

3
.Csproj फ़ाइल में आपको SolutionDir प्रॉपर्टी को अपडेट करने की आवश्यकता होती है, साथ ही प्रोजेक्ट रेफरेंस और नगेट पैकेज लोकेशन के लिए सभी रास्तों को ठीक करना होता है। .Sln फ़ाइल में आपको केवल प्रोजेक्ट के लिए पथ को अपडेट करना होगा।
पीट

इसने मेरे लिए काम किया है। एकमात्र 'ट्रिक' मुझे थी .sln फाइल को बदलना था इसलिए इसे संपादित करने के लिए आसानी से नहीं लिखा गया था और फिर सुरक्षा उद्देश्यों के लिए इसे फिर से पढ़ने के लिए चिह्नित किया गया था।
JustWannaFly 20

44
  1. VS2012 में अपना समाधान बंद करें
  2. अपने प्रोजेक्ट को नए स्थान पर ले जाएं
  3. अपना समाधान खोलें
  4. उस प्रोजेक्ट का चयन करें जो लोड करने में विफल रहा
  5. गुण उपकरण विंडो में, एक संपादन योग्य "फ़ाइल पथ" प्रविष्टि है जो आपको नए प्रोजेक्ट स्थान का चयन करने की अनुमति देती है
  6. नया रास्ता तय करें
  7. प्रोजेक्ट पर राइट क्लिक करें और पुनः लोड करें क्लिक करें

4
यह बहुत अच्छी तरह से काम करता है और सबसे तेज़ और आसान तरीका प्रतीत होता है, अन्य बहुत उच्चतर मतदान के बावजूद। इस पर एक लेख यहाँ है: msmvps.com/blogs/deborahk/archive/2010/06/30/…
माइक रोसेनब्लम

@MikeRosenblum लिंक टूट गया है, नया लिंक ब्लॉग
Roi Gavish

1
VS2012 में काम नहीं करता है। लिंक किए गए लेख में भी केवल VS2010 का उल्लेख है।
बासिम

VS2010 में मेरे लिए काम करने के लिए ठीक है, 1 को छोड़कर मेरे सभी संदर्भों को फिर से जोड़ना पड़ा।
क्रिस्टियन २

@Vasanth विजुअल स्टूडियो 2019 में आपको प्रोजेक्ट का पता लगाने के लिए .sln फ़ाइल को मैन्युअल रूप से संपादित करने की आवश्यकता है; और संभवतः (शायद) .csproj फ़ाइल भी किसी भी नगेट संकुल के सही स्थान को संदर्भित करने के लिए।
काल्टर

3

मेरे लिए क्या काम किया गया था:

  1. समाधान से परियोजना निकालें।
  2. टेक्स्ट एडिटर के साथ प्रोजेक्ट फ़ाइल को संपादित करें।
  3. "पैकेज" के लिए सभी रिश्तेदार पथ अपडेट करें। मेरे मामले में मैं बदलना पड़ा ..\packagesकरने ..\..\..\packagesके बाद से मैं एक गहरी फ़ोल्डर में परियोजना ले जाया गया।
  4. समाधान में प्रोजेक्ट को वापस लोड करें।

2

मुझे भी यही समस्या थी। मैंने संदर्भों को बदले बिना संदर्भों को स्थानांतरित करने और 15 मिनट से कम समय में हल किया।

मेरे लिए समाधान सरल था:

  1. अपनी फ़ाइलें जहाँ आप की जरूरत है ले जाएँ।
  2. नाम .vs के साथ फ़ोल्डर हटाएं। दिखाई देने वाला फ़ोल्डर नहीं होना चाहिए।
  3. नोट या नोटपैड ++ जैसे सरल संपादक का उपयोग करके समाधान फ़ाइल (.sln) खोलें।
  4. निम्न संरचना का उपयोग करते हुए, जहां आपकी फ़ाइल है, संदर्भ को बदलें: यदि आप अपनी परियोजना को उसी फ़ोल्डर में रखते हैं तो पिछले फ़ोल्डर या संदर्भ ".." को हटा दें; यदि आप उपर्युक्त फ़ोल्डर में रखते हैं, तो संदर्भ ".. \" या फ़ोल्डर का नाम जोड़ें।
  5. परिवर्तनों के साथ फ़ाइल को सहेजें।
  6. प्रोजेक्ट फ़ाइल (.csproj) खोलें और वही करें, संदर्भ निकालें या जोड़ें।
  7. परिवर्तनों को सुरक्षित करें।
  8. समाधान फ़ाइल खोलें।

उदाहरण:

समाधान फ़ाइल (.sln) में

  • मूल: प्रोजेक्ट ("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PATH1.UI", " ScannerPDF \ PATH1 .UI \ PATH1.UI.csproj", "A26438AD-E428-4AE4AE4AB8/4_4 } "प्रोजेक्ट (" {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ") =" PATH1.DataService "," ScannerPDF \ PATH1। DataService \ PATH1.DataService.csproj "," {ED5A1A561B561B561B561B5B3B5B3B5B5B5B5B5B5B5B5B5B5B2B5B3BFBFB2B2BFB2BFB2B2BFB2N5N5 "&hl=hi "" प्रोजेक्ट "" प्रोजेक्ट "(" {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ") =" PATH1.DataService "," स्कैनर "PD11। } "

    नई: परियोजना ("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PATH1.MX.UI", "PATH1.MX.UI 'PATH1.UI.csproj", "A26438AD-E428-4AE4-8AB8 -A5D6933E2D7B} "प्रोजेक्ट" ("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PATH1.DataService", "PATH1.DataService \ PATH1.DataService.csproj", {ED5I5 " } "

प्रोजेक्ट फ़ाइल में:

  • मूल:

    नया:

    मूल संदर्भ: .... \ lib \ RCWF \ 2018.1.220.40 \ TelerikCommon.dll

    नया संदर्भ: .. \ lib \ RCWF \ 2018.1.220.40 \ TelerikCommon.dll


2

सारांश: नाम बदलने के साथ VS2019 में नाम बदलें और जीआईटी के इतिहास को बनाए रखें, आर # थोड़ा सा लाभ उठाएं, स्वत: निर्भर परियोजना संदर्भ अद्यतन (कई परियोजनाओं के साथ स्लैन के लिए महत्वपूर्ण, हमारे पास> 200 है)

मैं Visual Studio 2019 में C # प्रोजेक्ट का नाम बदलने और स्थानांतरित करने के लिए निम्न चरणों का उपयोग कर रहा हूं। यह प्रक्रिया नाम स्थान को समायोजित करने के लिए R # का उपयोग करती है। Git का इतिहास "git mv" (इतिहास जोड़ने / हटाने से बचने) के द्वारा किया जाता है।

दो चरणों: 1) जगह में परियोजना का नाम बदलें और 2) परियोजना को स्थानांतरित करें।

( बेस 2 री अनलोडिंग प्रोजेक्ट्स से टिप का उपयोग करता है ।)

नाम बदलें

  1. वीएस | समाधान एक्सप्लोरर | राइट क्लिक परियोजना | नाम बदलें (उदाहरण के लिए, Utils.Foo से फू)।
  2. वीएस | समाधान एक्सप्लोरर | राइट क्लिक परियोजना | गुण | असेंबली का नाम, डिफ़ॉल्ट नाम स्थान और असेंबली सूचना फ़ील्ड बदलें
  3. इसी परीक्षण परियोजना के लिए 1 और 2 करें (जैसे, Utils.Foo.Tests)
  4. वीएस | समाधान एक्सप्लोरर | राइट-क्लिक प्रोजेक्ट्स (उत्पादन और परीक्षण) | रिफ्लेक्टर | नाम स्थान समायोजित करें
  5. XAML फाइलें जो परियोजना का उपयोग करती हैं उन्हें अद्यतन करने की आवश्यकता हो सकती है (मैन्युअल रूप से या एक उपयुक्त वैश्विक खोज और प्रतिस्थापन के साथ)
  6. सभी का पुनर्निर्माण करें
  7. कमिट !! (चाल से पहले परिवर्तन करने के लिए)

नोट: विंडोज एक्सप्लोरर में फ़ोल्डर इस बिंदु पर पुराना नाम है (उदाहरण के लिए, Utils.Foo)। यह कदम चरणों में तय किया गया है।

चाल

यह विधि: 1) git के इतिहास को बनाए रखती है, 2) R # को नाम स्थान को समायोजित करने के लिए एटोमिक और 3) अपडेट करती है आश्रित प्रोजेक्ट्स एन मस्से (निर्भर स्ले और csproj फ़ाइलों के थकाऊ मैनुअल संपादन से बचा जाता है)।

  1. समाधान में सभी परियोजनाओं को लोड करें (ताकि लक्ष्य परियोजना को हटाने से आश्रित परियोजनाओं में परिवर्तन को ट्रिगर न किया जाए)

    वीएस | समाधान के तहत सभी समाधान फ़ोल्डरों का चयन करें | राइट-क्लिक करें अनलोड प्रोजेक्ट्स

  2. git का उपयोग करके फ़ोल्डर ले जाएं (इसलिए इतिहास बनाए रखा गया है)

a) 2019 के लिए ओपन डेवलपर कमांड प्रॉम्प्ट

बी) जीआईटी स्थिति ("कुछ भी नहीं करने के लिए, स्वच्छ पेड़ काम करने के लिए" वर्णन करने के लिए)

c) git mv प्रोजेक्ट जैसे, git mv "C: \ Code \ foo \ foo \ Utils.Foo" "C: \ Code \ Foo"

घ) परिवर्तन को देखने / सत्यापित करने के लिए गिट स्थिति

  1. प्रोजेक्ट निकालें

वीएस | समाधान एक्सप्लोरर | प्रोजेक्ट का चयन करें | राइट क्लिक करें | निकालें (चूंकि सभी परियोजनाएं अनलोड हैं, यह निर्भर परियोजनाओं में इसके संदर्भ को सही ढंग से नहीं हटाएगा)

  1. प्रोजेक्ट को फिर से जोड़ें (समाधान एक्सप्लोरर में पेड़ में नए स्थान पर)

a) वी.एस. समाधान एक्सप्लोरर | लक्ष्य लक्ष्य मूल फ़ोल्डर | राइट क्लिक करें | जोड़ें | मौजूदा परियोजना

  1. सभी परियोजनाओं को पुनः लोड करें

महत्वपूर्ण: पुष्टि करें कि * निर्भर परियोजनाओं के लिए .csproj फ़ाइलों को अद्यतन किया गया है।

(वी.एस. टीम एक्सप्लोरर | परिवर्तन। किसी भी निर्भर csproj सूचीबद्ध डबल क्लिक करें। निरीक्षण-सत्यापित ProjectReference पथ परिवर्तन)

  1. एकल * .csproj फ़ाइल में मैन्युअल रूप से पथ को ठीक करें

रास्तों को ठीक करने के लिए नोटपैड ++ (या अन्य टेक्स्ट एडिटर) का उपयोग करें। अक्सर यह एक सरल खोज-और-प्रतिस्थापन (जैसे, ../../../../ से ../../) के साथ किया जा सकता है।

यह होगा अपडेट ...

a) GlobalAssmeblyInfo.cs संदर्भ

b) पैकेजों के लिए पथ

ग) निर्भरता वैधता आरेख फ़ाइलों के लिए पथ

घ) नियमों के रास्तों के लिए पथ (जैसे, <CodeAnalysisRuleSet>..\..\..\..\SolutionDependencyValidation\IgnoreWarnings.ruleset</CodeAnalysisRuleSet>)

  1. समाधान बंद करें और फिर से खोलें (परियोजना संदर्भों को अच्छे आकार में लाने के लिए)

सेव ऑल, क्लोज सॉल्यूशन, मैं बिन और ओब्जेक्ट फोल्डर को डिलीट करना पसंद करता हूं इतिहास की सफाई के लिए, री-ओपन सॉल्यूशन

  1. मान्य

a) वी.एस. टीम एक्सप्लोरर | परिवर्तन

i) स्टैन्ड चेंजेस को देखना चाहिए, जो कि ii को स्थानांतरित करने वाली फाइलों को प्रकट करते हैं) को आश्रित प्रोजेक्ट्स (* .csproj) को देखना चाहिए जो कि अच्छी तरह से अपडेट किए गए रिव्यू थे csproj में अंतर है और ध्यान दें कि रास्तों को खूबसूरती से अपडेट किया गया है !! (यह वह जादू है जो पाठ संपादक का उपयोग करके मैन्युअल रूप से csproj फ़ाइलों को अपडेट करने से बचा जाता है)

b) विंडोज एक्सप्लोरर में, सत्यापित करें कि पुराना स्थान खाली है

c) क्लीन सॉल्यूशन, सोल्यूशन सोल्यूशन, रन यूनिट टेस्ट, स्ल्न में ऐप्स लॉन्च करें।

  1. कमिट !!

1

यह VS2012 में आसान है; बस परिवर्तन मानचित्रण सुविधा का उपयोग करें:

  1. वह फ़ोल्डर बनाएँ जहाँ आप समाधान को ले जाना चाहते हैं।
  2. अपनी सभी प्रोजेक्ट फ़ाइलों में चेक-इन करें (यदि आप परिवर्तन रखना चाहते हैं), या किसी भी चेक आउट फ़ाइलों को रोलबैक करें।
  3. समाधान बंद करें।
  4. स्रोत नियंत्रण एक्सप्लोरर खोलें।
  5. समाधान पर राइट-क्लिक करें, और "उन्नत -> मानचित्रण निकालें ..." चुनें
  6. चरण 1 में आपके द्वारा बनाए गए "स्थानीय फ़ोल्डर" मान को बदलें।
  7. "बदलें" का चयन करें।
  8. स्रोत नियंत्रण एक्सप्लोरर में इसे डबल-क्लिक करके समाधान खोलें।

2
यही है, अगर आप TFS का उपयोग कर रहे हैं?
मार्टिन बा

1

विजुअल स्टूडियो कॉम्युनिटी 2019 में, मैंने वही किया जो विक्टर डेविड फ्रांसिस्को एनरिक ने कहा था, लेकिन केवल .vs इनविसाइल फोल्डर को हटाने की जरूरत थी।


0

वीएस 2015 में

  1. समाधान एक्सप्लोरर में अपनी परियोजना को अनलोड करें
  2. एक नया समाधान बनाएँ
  3. नए समाधान के फ़ोल्डर में प्रोजेक्ट की प्रतिलिपि बनाएँ
  4. समाधान पर राइट क्लिक करें, मौजूदा प्रोजेक्ट जोड़ें।
  5. यदि आप कुछ ढांचे का उपयोग करते हैं जैसे MVC, आपको संदर्भ प्रबंधक में संदर्भ जोड़ने की आवश्यकता हो सकती है।

0

मुझे लगा कि यह मेरे लिए काम कर रहा है।

दृश्य स्टूडियो 2017 समुदाय संस्करण में यह इस पथ पर एक प्रोजेक्ट बनाता है "C: \ Users \ mark \ source \ source \ repos \ mipmaps \ mipmaps" यह फ़ाइल तक पहुंच बना देगा समस्या से इनकार किया जाता है

अब, आप इस तरह से ठीक कर सकते हैं।

अपने दृश्य स्टूडियो प्रक्रिया को बंद करें। फिर, अपना प्रोजेक्ट ढूंढें और प्रोजेक्ट फ़ोल्डर की प्रतिलिपि बनाएं लेकिन, पहले दस्तावेजों में अपने दृश्य स्टूडियो 2017 फ़ोल्डर के अंदर एक उप-फ़ोल्डर नामांकित प्रोजेक्ट बनाएं। अगला, अपने दृश्य स्टूडियो 2017 प्रोजेक्ट फ़ोल्डर के अंदर प्रोजेक्ट फ़ोल्डर पेस्ट करें न कि मुख्य दृश्य स्टूडियो 2017 फ़ोल्डर जो इसे उप-फ़ोल्डर में जाना चाहिए जिसे प्रोजेक्ट कहा जाता है। अगला, विज़ुअल स्टूडियो 2017 को पुनरारंभ करें। फिर, ओपन प्रोजेक्ट सॉल्यूशन चुनें, फिर, अपने प्रोजेक्ट को अपने विजुअल स्टूडियो 2017 प्रोजेक्ट्स फ़ोल्डर में चिपकाएँ। फिर प्रोजेक्ट को साफ़ करें और इसे फिर से बनाएं, इसे बनाना चाहिए और बस ठीक संकलन करना चाहिए। आशा है, यह किसी और की मदद की। यह सुनिश्चित करने के लिए नहीं कि Microsoft ने आपकी परियोजनाओं का निर्माण ऐसे रास्ते में क्यों किया, जहां इसे लिखने की अनुमति की आवश्यकता है, यह मेरे से परे है।


0

मैं चाहता था कि हटाए गए और जोड़े जाने के बजाय Git में परिवर्तन को चाल / नाम के रूप में दिखाया जाए। तो मैंने ऊपर और इस पोस्ट का कॉम्बो किया ।

mkdir subdirectory
git mv -k ./* ./subdirectory
# check to make sure everything moved (see below)
git commit

और परियोजनाओं के रास्तों और विधानसभाओं के नगेट Pkg के पाठ फाइल के माध्यम से sln फाइल में समायोजित करें।


0
  1. प्रोजेक्ट फ़ोल्डर को नए गंतव्य पर कॉपी करें
  2. अपनी परियोजना को समाधान से निकालें ("समाधान एक्सप्लोरर" में परियोजना पर राइट-क्लिक करें और "निकालें" चुनें)
  3. फिर मौजूदा प्रोजेक्ट को समाधान में जोड़ें ("समाधान एक्सप्लोरर में प्रोजेक्ट को राइट-क्लिक करें" और "जोड़ें" और फिर "मौजूदा प्रोजेक्ट" चुनें)
  4. "YourProjectName.csproj" फ़ाइल में "पैकेज" फ़ोल्डर में पथ बदलें (नोटपैड में खोलें और लिंक किए गए पैकेजों के लिए पथ बदलें)

0

इसने मेरे लिए vb2019 काम किया। मैंने अपने स्रोत प्रोजेक्ट फ़ोल्डर की प्रतिलिपि बनाई। मैंने तब परियोजना को चिपकाया, और फ़ोल्डर को जो भी नाम दिया गया। स्रोत प्रोजेक्ट फ़ोल्डर में वापस संबंध तोड़ने के लिए, मैंने अस्थायी रूप से स्रोत फ़ोल्डर का नाम बदल दिया है। मैंने अपना डेस्टिनेशन प्रोजेक्ट खोला। प्रपत्र और मॉड्यूल के पथ स्थानीय फ़ोल्डर में फिर से खोजे गए थे। मैं यह सुनिश्चित करने के लिए अपने सभी रूपों और मॉड्यूल से गुजरा कि वे काम कर रहे थे। मैंने प्रोजेक्ट चलाया। मैंने प्रोजेक्ट बंद कर दिया। मैंने मूल प्रोजेक्ट फ़ोल्डर का नाम बदलकर मूल नाम नहीं दिया है। मैं त्रुटियों के बिना एक ही समय में दोनों परियोजनाएं खोल सकता हूं।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.