मैं किसी मौजूदा निर्देशिका ट्री को Visual Studio में प्रोजेक्ट में कैसे जोड़ूँ?


824

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

यदि मैं सेवाओं के नाम वाले फ़ोल्डर में "मौजूदा फ़ाइल जोड़ें" और निर्देशिका संरचना में एक फ़ाइल पर नेविगेट करता हूं .. सेवाएँ> खाता प्रबंधन> CreateAccount.cs, यह Visual Studio में इस तरह दिखाई देता है: सेवाएँ> CreateAccount.cs। मुझे यह नहीं चाहिए।

मेरे पास एक पूरी निर्देशिका संरचना पहले से ही काम कर रही है, क्योंकि मैं संगठन के लिए समान संरचना का उपयोग करके अपने ग्राहक डेवलपर्स की नकल कर रहा हूं। मैं विज़ुअल स्टूडियो में प्रोजेक्ट के सभी फ़ोल्डर्स और फ़ाइलों को कैसे जोड़ूं? या क्या मुझे ऐसा करना होगा जो अधिकांश Microsoft उपयोगकर्ता करते हैं और "इसके साथ काम करते हैं" और विजुअल स्टूडियो के माध्यम से प्रत्येक फ़ोल्डर को फिर से बनाते हैं?



जवाबों:


1438

आपको अपनी निर्देशिका संरचना को अपनी परियोजना निर्देशिका में रखना होगा। और फिर समाधान एक्सप्लोरर टूलबॉक्स के शीर्ष में "सभी फाइलें दिखाएं" आइकन पर क्लिक करें। उसके बाद, अतिरिक्त निर्देशिका दिखाई जाएगी। फिर आपको इस निर्देशिका का चयन करना होगा, राइट क्लिक करें, और "प्रोजेक्ट में शामिल करें" चुनें।

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

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


150
क्या प्रोजेक्ट डायरेक्टरी के बाहर डायरेक्टरी (पेड़) के साथ ऐसा करने का कोई तरीका है ?
इमरे

2
वहाँ एक फ़ोल्डर के लिए ऐसा करने का एक तरीका है जो आपकी परियोजना कहाँ है की एक उपनिर्देशिका नहीं है? यानी: E: \ ProjectX \ project.vcproj में फ़ोल्डर E: \ Common * .cs शामिल हैं। ??
मैट कोनोली

4
लगभग काम करता है। मैं निर्देशिका ट्री देख सकता हूं, और कई फाइलें जोड़ सकता हूं, लेकिन यह मुझे उप-पेड़ों सहित पूरी निर्देशिका जोड़ने की अनुमति नहीं देगा।
ManicBlowfish

5
समस्या यह है कि यह केवल तभी काम करता है यदि आप विंडोज एक्सप्लोरर के माध्यम से अपने विजुअल प्रोजेक्ट में डायरेक्टरी ट्री को कॉपी करते हैं। यदि आप अपने कंप्यूटर पर किसी अन्य प्रोजेक्ट में निहित कुछ फ़ोल्डर्स और फ़ाइलों का संदर्भ लेना चाहते हैं तो आप कैसे कर सकते हैं?
हिको

5
जिस तरह से मुझे पता है कि परियोजना के बाहर ऐसा करना एक प्रतीकात्मक कड़ी का उपयोग कर रहा है ... मेरा उत्तर देखें: stackoverflow.com/a/26537736/835561
Edyn

77

आप अपने विजुअल स्टूडियो सॉल्यूशन विंडो पर विंडोज एक्सप्लोरर से फोल्डर को ड्रैग और ड्रॉप भी कर सकते हैं।


14
यह विस्टा अल्टीमेट 64 बिट पर वीएस 2010 की मेरी स्थापना में काम नहीं करता है।
जॉन मेलविले

13
नहीं, विंडोज 7 पर मेरे वीएस 2010 की स्थापना में भी काम नहीं करता है।
ए.एच.

9
इसकी पुष्टि वीएस 2010 (गैर-प्रशासक मोड) में भी काम नहीं करता है
डेविड गार्डिनर

9
मुझे नहीं लगता कि आप लोग इसे सही कर रहे हैं। वीएस 2010 समर्थन फ़ोल्डर खींचें एन ड्रॉप करता है। मैं अपने टूल-किट को शामिल करने के लिए हर समय ऐसा करता हूं। आपको यह सुनिश्चित करना होगा कि आप परियोजना के पेड़ में गिर गए। समाधान पैनल और समाधान नोड स्वयं ड्रॉप प्राप्त नहीं करेंगे। ओएस यहां अप्रासंगिक है, लेकिन संदेह के लिए, मैं विंडोज 7 64 बिट का उपयोग करता हूं।
गेविन विलियम्स

4
"समाधान आइटम" किसी प्रोजेक्ट में आइटम जोड़ने से अलग हैं। समाधान आइटम VS समाधान के भीतर एक विशेष फ़ोल्डर हैं।
टोड स्मिथ

53

विजुअल स्टूडियो 2015 में, यह है कि आप इसे कैसे करते हैं।

यदि आप स्वचालित रूप से एक विशिष्ट फ़ोल्डर के नीचे सभी अवरोही फ़ाइलों को शामिल करना चाहते हैं:

<Content Include="Path\To\Folder\**" />

यह निर्दिष्ट पथ के भीतर केवल फ़ाइलों को शामिल करने के लिए प्रतिबंधित किया जा सकता है:

<Content Include="Path\To\Folder\*.*" />

या केवल एक निर्दिष्ट एक्सटेंशन वाली फाइलें:

<Content Include="Path\To\Folder\*.jpg" >

संदर्भ: http://jamesrpatterson.com/blog/automatic-include-in-project-for-visom-studio


3
मुझे यह मददगार लगा क्योंकि मैं तब "प्रत्येक बिल्ड पर कॉपी" के लिए एक एकल टैग शामिल कर सकता था, बजाय इसके कि हर व्यक्ति की फाइल को एनोटेट करने की जरूरत हो (जैसा कि स्वीकृत उत्तर में था)
गॉर्डन बीन

3
IMO यहाँ सबसे उपयोगी उत्तरों में से एक है।
सिंजई

कहाँ जोड़ा गया है? आप वीएस में एक XML दृश्य कैसे प्राप्त करते हैं?
मैथ्यू डीन

1
जब आप बड़े पदानुक्रम फ़ोल्डर जोड़ना चाहते हैं तो यह सबसे अच्छा समाधान है, जबकि विज़ुअल स्टूडियो प्रतिक्रिया नहीं दे रहा है और लटका हुआ है।
गौतम एलन

1
Microsoft VS टीम पर इसकी शर्म
dejjub-AIS

33

कॉपी और पेस्ट करें

एक फ़ोल्डर, सभी उप-निर्देशिकाओं, और फ़ाइलों को जोड़ने के लिए हम कॉपी और पेस्ट भी कर सकते हैं। उदाहरण के लिए हम कर सकते हैं:

  1. फ़ोल्डर पर विंडोज एक्सप्लोरर में राइट क्लिक करें, और कई फ़ाइलों और फ़ोल्डरों के साथ फ़ोल्डर पर कॉपी करें।

  2. फिर विजुअल स्टूडियो सॉल्यूशन एक्सप्लोरर में, गंतव्य फ़ोल्डर पर राइट क्लिक करें और पेस्ट पर क्लिक करें।

  3. टीएफएस के लिए वैकल्पिक जोड़; फिर शीर्ष फ़ोल्डर में राइट क्लिक करें और सभी सब-फ़ोल्डर्स और फ़ाइलों में जांचने के लिए टीएफएस में चेक करें।


इसने मेरे लिए काम किया लेकिन खींचें और ड्रॉप वीएस 14 और विंडोज 10 प्रो में काम नहीं किया।
मोना जलाल

1
जब तक आप VS को प्रशासक के रूप में नहीं चला रहे हैं, तब तक ड्रैग एंड ड्रॉप काम नहीं कर सकता है
RThomas

18

आप एक प्रतीकात्मक लिंक का उपयोग कर सकते हैं। यह एक परियोजना में फ़ाइल को संशोधित करता है इसे दूसरे में संशोधित करता है (क्योंकि यह वास्तव में एक ही फ़ाइल है)।

यह करने के लिए:

  1. व्यवस्थापक के रूप में cmd ​​शीघ्र खोलें
  2. mklink / d [वर्तमान परियोजना निर्देशिका नाम] [अन्य परियोजना में निर्देशिका यह इंगित करना चाहिए]

इसकी कमियां और कमियां हैं, लेकिन मैं इस अवसर पर डुप्लिकेट लाइब्रेरी के लिए उपयोग करता हूं जिन्हें अलग-अलग नामों की आवश्यकता होती है।

अनूप के लिए संपादन: विज़ुअल स्टूडियो में जोड़ने के लिए कदम:

  1. उपरोक्त चरणों का उपयोग करके प्रोजेक्ट फ़ोल्डर में लिंक बनाएं।
  2. Visual Studio में ... समाधान एक्सप्लोरर में प्रोजेक्ट चुनें।
  3. सॉल्यूशन एक्सप्लोरर के शीर्ष पर ... शो ऑल फाइल्स बटन पर क्लिक करें (यदि पहले से सक्रिय हो तो इसे दो बार क्लिक करने की आवश्यकता हो सकती है)।
  4. लिंक अब आपके प्रोजेक्ट में दिखाई देगा ... राइट-क्लिक करें और इनक्लूड इन प्रोजेक्ट चुनें।

ये मेरे द्वारा अनुसरण किए जाने वाले कदम हैं और कुछ अलग-अलग परियोजनाओं के लिए काम करते हैं।


यह काम नहीं करता है! प्रतीकात्मक लिंक को फ़ोल्डर के रूप में मान्यता नहीं दी जाती है
अनूप के। प्रभु

1
@Anoop: मैंने यह दिखाने के लिए चरण जोड़े हैं कि मैं इस पद्धति का उपयोग कैसे करता हूं। कृपया इसे एक कोशिश का मौका दीजिए।
14

1
यह काम कर रहा है! मैं कमांड प्रॉम्प्ट का उपयोग करने के बजाय फ़ोल्डर को राइट-क्लिक करके शॉर्टकट बनाने की कोशिश कर रहा था और इस तरह यह काम नहीं किया। ऊपर वर्णित चरणों के बाद इस मुद्दे को तय किया। धन्यवाद
अनूप कुमार प्रभु

1
नोट: mklink एक FAT फाइल सिस्टम पर काम नहीं करेगा। यह NTFS के लिए है।
एड्रियन

स्रोत नियंत्रण प्रतीकात्मक लिंक के साथ कहर बरपाएगा। Git को फ़ाइल में व्यवस्थापक विशेषाधिकार या बस जाँच की आवश्यकता है।
सीएडी

13

Visual Studio 2017 में, आप समाधान दृश्य और फ़ोल्डर दृश्य के बीच पीछे और पीछे स्विच करते हैं। मुझे लगता है कि यह एक बेहतर विकल्प है, क्योंकि यह समाधान को साफ रखेगा। मैं इसे .gitignore, .md फ़ाइलों आदि को संपादित करने के लिए उपयोग करता हूं।

समाधान दृश्य और फ़ोल्डर दृश्य


5
सवाल यह है कि समाधान में मौजूदा फ़ोल्डर को कैसे जोड़ा जाए, न कि केवल फ़ोल्डर को देखने के लिए।
CShark

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

12

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

यहाँ एक उदाहरण है कि आप *.csprojलिंक बनाने के लिए फ़ाइल में क्या जोड़ सकते हैं

<Compile Include="$(Codez)\z.Libraries\Common\Strings\RegexExtensions.cs">
    <Link>Helpers\RegexExtensions.cs</Link>
</Compile>

<Compile Include="..\..\z.Libraries\MoreLINQ\MoreLinq\ExceptBy.cs">
    <Link>Helpers\ExceptBy.cs</Link>
</Compile>

<Content Include="C:\Codez\Libs\Folder\OtherFolder\**\*.*">
    <Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>

$(Codez) एक विंडोज पर्यावरण चर है जिसे मैंने परिभाषित किया है, आप उसी तरीके से अंतर्निहित पर्यावरण चर का उपयोग कर सकते हैं।

अंतिम उदाहरण समूह उन सामग्री फ़ाइलों का एक समूह है, जिनकी मुझे अंतिम आउटपुट में आवश्यकता है। Https://stackoverflow.com/a/11808911/492 और उस पर और अधिक के लिए अन्य उत्तर और लिंक देखें ।

Https://msdn.microsoft.com/en-us/library/bb629388.aspx पर अधिक MSBuild जानकारी


2
इसका उत्तर होना चाहिए!
जरीज कस्तानोव्स

4

मुझे लगता है कि मुझे ऐसा करने का एक तरीका मिल गया है जिसमें Compile को शामिल करें = "। \"।

यहाँ प्रोजेक्ट फ़ाइल नमूना है।

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="15.0" DefaultTargets="BuildTarget">
    <PropertyGroup>
        <OutputType>Library</OutputType>
    </PropertyGroup>
    <PropertyGroup>
        <StartupObject />
    </PropertyGroup>
    <PropertyGroup>
        <RootNamespace>Autogen</RootNamespace>
    </PropertyGroup>
    <ItemGroup>
        <Compile Remove="@(Compile)" />
        <Compile Include=".\Code\**\*.cs" />
    </ItemGroup>
    <Target Name="BuildTarget">
        <Message Text="Build selected" Importance="high"/>
    </Target>
</Project>

2

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

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


0

जहाँ तक मैं बता सकता हूँ, VS2010 में ऐसा करने का एकमात्र तरीका ड्रैग एंड ड्रॉप विधि के समान है। उस समाधान पर राइट क्लिक करें, जिसमें आप प्रोजेक्ट जोड़ना चाहते हैं। एप्लिकेशन मेनू में एक आइटम होगा ... आइटम। इसे खोलते हुए, आप पाते हैं कि विकल्प में से एक मौजूदा प्रोजेक्ट को समाधान में जोड़ना है।

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

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


0

मुझे अपनी संतुष्टि का कोई जवाब नहीं मिला, इसलिए मैंने खुद को समझा।

यदि आप अपनी परियोजना में बाहरी स्रोत कोड जोड़ना चाहते हैं और पूरे कोड की प्रतिलिपि नहीं बनाना चाहते हैं, तो इसका उत्तर यहां दिया गया है। मेरे पास अन्य गिट्स पर कई निर्भरताएं हैं और वे प्रति घंटा अपडेट किए जाते हैं यदि न्यूनतम रूप से नहीं। मैं सिंक करने के लिए हर घंटे कॉपी नहीं कर सकता। यहाँ है आपको क्या करने की जरूरत है।

मान लें कि यह संरचना है:

/ जड़ / projA / src

/ जड़ / projA / शामिल

/ जड़ / projB / src

/ जड़ / projB / शामिल

/ जड़ / yourProj / src

/ जड़ / yourProj / शामिल

  1. अपना VS समाधान शुरू करें।
  2. समाधान के ठीक नीचे प्रोजेक्ट नाम पर राइट-क्लिक करें।
  3. फिर "जोड़ें", "नया फ़िल्टर" पर क्लिक करें, नाम "प्रजा" को प्रोजा के लिए रखें।
  4. "प्रजा" पर राइट-क्लिक करें, "जोड़ें", "नया फ़िल्टर" पर क्लिक करें, "src" नाम दर्ज करें
  5. "प्रोजा" पर राइट-क्लिक करें, "ऐड", "न्यू फिल्टर" पर क्लिक करें, नाम दर्ज करें "शामिल हैं"
  6. "ProjA" / "src" पर राइट-क्लिक करें, "Add", "मौजूदा आइटम" पर क्लिक करें, फिर सभी स्रोत कोड या एक-एक करके सभी को जोड़ने के लिए / root / projA / src पर ब्राउज़ करें जिन्हें आप चाहते हैं।
  7. "प्रोजा" / "के लिए भी ऐसा ही करें"
  8. प्रोजबी के लिए भी ऐसा ही करें। अब आपके बाहरी / मौजूदा प्रोजेक्ट आपके समाधान / प्रोजेक्ट में मौजूद हैं। वीएस उन्हें एक साथ संकलित करेंगे। यहाँ एक चाल है। चूंकि projA और projB आपके प्रोजेक्ट के अंतर्गत वर्चुअल फोल्डर हैं, इसलिए कंपाइलर को projA / शामिल नहीं हो सकता है।

  9. यदि यह projA / शामिल नहीं करता है, तो प्रोजेक्ट पर राइट क्लिक करें, "गुण" चुनें।

  10. "C / C ++" पर नेविगेट करें। "अतिरिक्त शामिल निर्देशिकाओं" को संपादित करें, अपने प्रोज को जोड़ें / जैसे शामिल करें "../projA/includes", सापेक्ष पथ।

यदि कोई डुप्लिकेट है, तो डुप्लिकेट / हेडर फ़ाइल शामिल हैं, "हेडर फ़ाइल" पर "प्रोजेक्ट से बाहर करें" वास्तव में काम नहीं करता है। यह वी.एस. में एक बग है।


0

विजुअल स्टूडियो 2017 और नए एक नए हल्के .csprojप्रारूप का समर्थन करता है जिसे "एसडीके प्रारूप" के रूप में जाना जाता है। इस प्रारूप के कई फायदों में से एक यह है कि इसमें शामिल फ़ाइलों और फ़ोल्डरों की सूची होने के बजाय , फाइलें वाइल्डकार्ड डिफ़ॉल्ट रूप से शामिल हैं। इसलिए, इस नए प्रारूप के साथ, आपकी फ़ाइलें और फ़ोल्डर्स - एक्सप्लोरर में या कमांड लाइन पर जोड़े गए - स्वचालित रूप से उठाए जाएंगे!

SDK प्रारूप .csprojफ़ाइल वर्तमान में निम्न प्रोजेक्ट प्रकारों के साथ काम करती है :

  • कक्षा पुस्तकालय परियोजनाओं

  • कंसोल एप्स

  • ASP.NET कोर वेब ऐप्स

  • किसी भी प्रकार की .NET कोर परियोजनाएं

नए प्रारूप का उपयोग करने के लिए, एक नया .NET कोर या .NET मानक प्रोजेक्ट बनाएं। क्योंकि Visual Studio 2019 में भी पूर्ण .NET फ्रेमवर्क के लिए टेम्प्लेट को अपडेट नहीं किया गया है। .NET क्लास लाइब्रेरी बनाने के लिए .NET मानक लाइब्रेरी टेम्पलेट चुनें, और फिर अपनी पसंद के फ्रेमवर्क संस्करण को लक्षित करने के लिए प्रोजेक्ट फ़ाइल को संपादित करें ( नई शैली परियोजना प्रारूप को विजुअल स्टूडियो के अंदर संपादित किया जा सकता है - ठीक समाधान एक्सप्लोरर में परियोजना पर क्लिक करें और "परियोजना फ़ाइल संपादित करें" का चयन करें)। उदाहरण के लिए:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net46</TargetFramework>
  </PropertyGroup>
</Project>

आगे की पढाई:

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