पूरी परियोजना के नाम स्थान कैसे बदलें?


104

मैं इस लेख से डेमो आवेदन को संशोधित कर रहा हूं: http://msdn.microsoft.com/en-us/magazine/dd41966.nx

मुझे अपने नाम स्थान का उपयोग करने के लिए सभी फ़ाइलों को अपडेट करने की आवश्यकता है, उदाहरण के लिए अब यहाँ स्थित फ़ाइल:

MySolution\MyApp\DemoApp\ViewModel\MainWindowViewModel.cs

ऐसे नामस्थान का उपयोग कर रहा है:

namespace DemoApp.ViewModel
{
/// <summary>
/// The ViewModel for the application's main window.
/// </summary>
public class MainWindowViewModel : WorkspaceViewModel

मुझे यहां फ़ाइल ले जाने की आवश्यकता है (डेमोऐप फ़ोल्डर को हटा दें):

MySolution\MyApp\ViewModel\MainWindowViewModel.cs

और सही नाम स्थान का उपयोग करने के लिए भी:

namespace MyApp.ViewModel
{
....

दृश्य स्टूडियो 2010 में ऐसा कैसे करें?

ठीक यहां अपडेट करें डुप्लिकेट संभव है दृश्य स्टूडियो में प्रोजेक्ट नाम स्थान बदलें अब मुझे पता है कि प्रोजेक्ट के नाम स्थान को कैसे बदलना है, लेकिन फाइल सिस्टम पर फ़ाइलों को कैसे स्थानांतरित किया जाए? ("डेमोऐप" फ़ोल्डर से छुटकारा पाएं)


4
एक FYI के रूप में, आपको आवश्यक रूप से .NET में फ़ोल्डर संरचना से मेल करने के लिए नामस्थान की आवश्यकता नहीं है, यह आवश्यक नहीं है।
जेम्स माइकल हरे

1
जैसा कि जेम्स ने कहा, इसकी आवश्यकता नहीं है .. लेकिन मैं सवाल करूंगा कि जिस ऐप पर मुझे काम करना था, उस पर किसी ने "काम खत्म" क्यों नहीं किया।
NotMe

1
चलती फ़ाइलों के बारे में .. उम, कट / पेस्ट और ड्रैग / ड्रॉप आमतौर पर दृश्य स्टूडियो समाधान प्रबंधक के भीतर काम करता है .. या यहां तक ​​कि बस फ़ोल्डर का नाम बदलें या हटाएं। आप वास्तव में क्या करने की कोशिश कर रहे हैं उसके आधार पर।
NotMe

जवाबों:


124

मैं फ़ाइलों में एक साधारण प्रतिस्थापन की कल्पना करता हूं ( Ctrl+ Shift+ H) बस चाल के बारे में होगा; बस के namespace DemoAppसाथ बदलें namespace MyApp। उसके बाद, समाधान का निर्माण करें और अज्ञात पहचानकर्ताओं के लिए संकलन त्रुटियों की तलाश करें। जो कुछ भी पूरी तरह से योग्य है, DemoAppउसे बदलना होगा MyApp


62
जरूरी; प्रोजेक्ट-प्रॉपर्टी में भी डिफ़ॉल्ट-नेमस्पेस बदलें; इस नियंत्रण resx जैसी चीजों के लिए नाम स्थान
मार्क Gravell

मेरे पास कुछ XAML फाइलें हैं जो WPF विंडो का प्रतिनिधित्व करती हैं, इसलिए यह मेरे लिए काम नहीं करेंगी।
पीटर

6
तुम भी एक किसी पर बदलें चलाना चाहिए usingसे परिवर्तन करने के लिए बयान using DemoAppकरने के लिए using Myapp
swbandit

5
यह भी नाम में सभी नाम web_config फ़ाइलों में सभी नाम जोड़ें = "OldNameSpace" /> जोड़ें
neo112

@ पीटर आपको पूरे आवेदन के लिए सभी को बदलने में सक्षम होना चाहिए, इसके बाद गुणों में एक अद्यतन के रूप में मार्क का सुझाव है, फिर समाधान को बंद करें और इसे फिर से खोलें अन्यथा वीएस में कुछ ऑटो पूरा होने के साथ अस्पष्ट व्यवहार है।
एरिक

153

किसी स्थान पर जाएं आपकी एक फ़ाइल में नाम स्थान घोषित किया गया है। कर्सर को उस नामस्थान के हिस्से पर रखें जिसे आप बदलना चाहते हैं, और दबाएं F2। यह हर फ़ाइल में नाम स्थान का नाम बदलना चाहिए। कम से कम, यह मेरे छोटे डेमो प्रोजेक्ट में काम करता है जिसे मैंने इस उत्तर का परीक्षण करने के लिए बनाया था!

आपके वीएस संस्करण के आधार पर, शॉर्टकट भी हो सकता है Ctrl- R, Ctrl- R


1
किसी कारण से मेरे लिए काम नहीं करता है। मैं F2 दबाता हूं और कुछ नहीं होता है।
जावपावर

6
@ javapowered, तब आपका हॉटकी अनुकूलित किया गया है। तुम्हारे लिए वी.एस. विकल्प में देखो। आज मेरा CTRL-R CTRL-R है।
एमी

4
नोट: हालांकि मैं अभी भी इस पद्धति को पसंद करता हूं, यह [समझ में] विचारों में संदर्भों को बदलने में विफल रहा और व्यू / डायरेक्टरी में निहित वेब.कॉन्फिग फ़ाइल में। बस उन लोगों के लिए देखो।
वाइजगू

3
ऐसे संस्करण के लिए जिसे हॉटकी परिवर्तनों पर निर्भर नहीं होना चाहिए, बस नाम स्थान के नाम पर राइट क्लिक करें और नाम बदलें।
कैट

3
यदि आप नया नाम किसी .वर्ण को शामिल करना चाहते हैं, तो दुर्भाग्य से यह काम नहीं करता है ।
बोटॉन्ड बालाज़

27

बस समाधान पर क्लिक करें, गुणों पर जाएं, 'एप्लिकेशन' अनुभाग के तहत "डिफ़ॉल्ट नाम स्थान" बदलें।

यहां छवि विवरण दर्ज करें


3
क्या यह मौजूदा फ़ाइलों में नाम स्थान बदलता है?
प्रियांश कुमार

5
नहीं, यह नहीं होगा।
अनुजा लमहेवा

3

Ctrl+ Shift+H वास्तविक समाधान नहीं।

आप अपने समाधान में अपनी सभी नामस्थान परिभाषाओं को बदलने के लिए Resharper का उपयोग कर सकते हैं। यह सबसे अच्छा तरीका है, जो मैंने पहले किया था।

https://www.jetbrains.com/resharper/features/code_refactoring.html


2
resharper को पूर्ण विकसित महंगी डेस्कटॉप मशीन की आवश्यकता होती है
इवान जी।

@IvanG। ठीक है, कई वाणिज्यिक परियोजनाओं के लिए पूर्ण विकसित महंगे डेवलपर्स की भी आवश्यकता होती है, इसलिए मशीन और एक आर # लाइसेंस चीजों की अनुदान योजना में बहुत महंगा नहीं है;) यदि आपको यह जांचने की आवश्यकता है कि यह (या एडम या एमी की) विधि ने सही तरीके से काम किया है; , आप कोड के मुद्दे
स्टुअर्टएलसी

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

दोस्तों आप सिर्फ मुफ्त में जानने के लिए नाम बदलने के लिए उपयोग कर सकते हैं :-) इसे स्थापित करें नि: शुल्क परीक्षण संस्करण को सक्रिय करें, इसका नाम बदलें और यदि आप चाहते हैं तो इसे अनइंस्टॉल करें
;;

1

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


फ़ाइल मैच REGEX: (.exe) | (.dll) | (.cache) | (.pdb) फिर मैच को पलटें । अन्य बायनेरी वगैरह को बाहर करने के लिए इस पैटर्न को दोहराएं।
ट्वोबॉब


1

आप नामस्थान रीफैक्टरिंग के लिए ReSharper का उपयोग कर सकते हैं। यह 30 दिनों का नि: शुल्क परीक्षण देगा। यह फ़ोल्डर की संरचना के अनुसार नाम बदल देगा।

कदम:

1) प्रोजेक्ट / फोल्डर / फाइलों पर राइट क्लिक करें जिसे आप रिफलेक्टर करना चाहते हैं।

2) अगर आपने ReSharper इंस्टॉल कर लिया है तो आपको एक विकल्प मिलेगा Refactor-> एडजस्ट नेमस्पेस .... तो इस पर क्लिक करें।

यहां छवि विवरण दर्ज करें

यह स्वचालित रूप से सभी चयनित फ़ाइलों के नाम रिक्त स्थान को बदल देगा।


धन्यवाद .. मैं ऐसा करने में सक्षम था।
sgowd

0

मैंने सब कुछ करने की कोशिश की लेकिन मुझे एक समाधान मिला जो वास्तव में काम करता है। यह एक नए नामस्थान नाम के साथ एक संक्षिप्त समाधान बनाता है।

  1. मुख्य रूप में नाम स्थान का नाम खोजें -> राइट क्लिक -> रिफ्लेक्टर -> नाम बदलें और एक नया नाम चुनें। सभी बॉक्स चेक करें और ओके पर क्लिक करें।

  2. समाधान खोजकर्ता में एक नया नाम समाधान नाम बदलें।

  3. समाधान खोजकर्ता में एक नया नाम प्रोजेक्ट नाम का नाम बदलें।

  4. वीएस और नाम बदलें फ़ोल्डर (उदाहरण के लिए कुल कमांडर) में समाधान फ़ोल्डर में एक नया नाम।

  5. .Sln फ़ाइल में पुराना नाम बदलकर नया नाम रखें।

  6. पुरानी .suo फ़ाइलें हटाएं (छिपी)

  7. VS और लोड प्रोजेक्ट शुरू करें

  8. प्रोजेक्ट -> गुण -> असेंबली का नाम और डिफ़ॉल्ट नाम स्थान को एक नए नाम में बदलें।


0

मैं इसके बारे में काफी देर से जानता हूं, लेकिन जो कोई भी इसे अभी से करना चाहता है, मुझे उम्मीद है कि यह उत्तर कुछ मदद के लिए साबित होगा। यदि आपके पास CodeRush Express( नि: शुल्क संस्करण , और एक 'होना चाहिए') स्थापित है, तो यह प्रोजेक्ट वाइड नेमस्पेस को बदलने का एक सरल तरीका प्रदान करता है। आप बस अपने कर्सर को नेमस्पेस पर रखें जिसे आप बदलना चाहते हैं और यह स्ट्रिंग के smart tagनीचे एक (थोड़ा नीला बॉक्स) प्रदर्शित करेगा namespace। आप उस बॉक्स पर क्लिक कर सकते हैं या विकल्प Ctrl +देखने के लिए कुंजियाँ दबा सकते हैं Rename। इसे चुनें और फिर प्रोजेक्ट वाइड नेमस्पेस के लिए नए नाम में टाइप करें, क्लिक करें Applyऔर चुनें कि आपके प्रोजेक्ट में कौन से स्थान आप इसे बदलना चाहते हैं, नए संवाद में और OKयह। किया हुआ! :-)


मेरे अनुभव में CodeRush Express एक 'होना चाहिए' (व्यक्तिगत राय) नहीं है। यह इस तरह की चीजों के लिए उपयोगी है।
मैर्टन

0

जब मैंने नाम स्थान और समाधान नाम को निम्नानुसार बदलना चाहा:
1) नाम स्थान का चयन करके उसे बदल दिया और उसका नाम बदल दिया और मैंने समाधान नाम
2 के साथ भी यही किया) प्रकाश बल्ब पर क्लिक किया और पुराने नाम स्थान
3 के सभी उदाहरणों को बदला ) समाधान
4 से सभी परियोजनाओं को हटा दिया ) दृश्य स्टूडियो को बंद कर दिया
5) खिड़कियों के एक्सप्लोरर में सभी परियोजनाओं का नाम बदल दिया
6) दृश्य स्टूडियो खोला और फिर से सभी परियोजनाओं को जोड़ा
7) उनके गुणों में सभी परियोजनाओं में नाम स्थान का नाम बदलें
8) बिन फ़ोल्डर हटा दिया ( सभी परियोजनाओं से)
9) परियोजना का निर्माण फिर से करें

यह मेरे लिए बिना किसी समस्या के काम करता है और मेरी परियोजना का स्रोत नियंत्रण भी था। रिमोट में उन बदलावों को आगे बढ़ाने के बाद सब ठीक था।

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