11

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

क्या यह संभव है?

+0

मैं आमतौर पर एक समाधान फ़ोल्डर बनाते हैं। – AMissico

+0

क्या आप इसे समाधान स्तर या परियोजना स्तर पर चाहते हैं? – Jon

+0

समाधान फ़ोल्डर क्रमबद्ध रूप से क्रमबद्ध हैं। –

उत्तर

4

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

हालांकि, कोड के साथ कुछ भी संभव है। आप ऐसा करने के लिए एक विस्तार बना सकते हैं, लेकिन यह आसान नहीं होगा। आपको शायद IVsHierarchy के साथ गड़बड़ करने की आवश्यकता होगी या यहां तक ​​कि project subtype लागू करें।

3

असल में, मैं करने के लिए अपने में से एक फ़ोल्डर चाहते हैं, "विशेष फ़ोल्डर" का एक प्रकार के रूप में अन्य फ़ोल्डर ऊपर दिखाई देते हैं, कैसे गुण यह अपने विशेष जगह भले ही यह एक फ़ोल्डर है है के लिए इसी तरह एक ही App_Data, आदि के साथ

क्या यह संभव है?

हाँ:

  1. इसे मैन्युअल को स्वयं अपनी स्क्रिप्ट क्या आईडीई
  2. के माध्यम से लिखें उत्पन्न/संशोधित अपने *.sln/*.vcproj

के लिए (1) "मैन्युअल" पर आईडीई में समाधान: Solution Explorer, right-clickSolution node ==>Add ==>New Solution Folder पर।

जबकि आम तौर पर फ़ोल्डरों को क्रमबद्ध रूप से क्रमबद्ध किया जाता है (मैं अपने विशेष फ़ोल्डर को शीर्ष पर मजबूर करने के लिए एक अग्रणी अंडरस्कोर डालना चाहता हूं), मेरे एमएसवीएस 2008 में मैन्युअल रूप से डाले गए समाधान फ़ोल्डरों को नया फ़ोल्डर "शीर्ष पर" छोड़ देता है, भले ही इसे चाहिए वर्णानुक्रम के अनुसार क्रमबद्ध हो गया है। हालांकि, Project (जिन्हें "Filters" कहा जाता है) के तहत फ़ोल्डरों को हमेशा वर्णानुक्रम में क्रमबद्ध किया जाता है, और राइट-क्लिक से समान रूप से जोड़ा जाता है, और फिर आप वहां मौजूद फ़ाइल के लिए फ़ाइल नाम ग्लब्स के साथ अपने "फ़िल्टर गुण" को संशोधित कर सकते हैं (उदाहरण के लिए , "*.MY_EXTENSION1;*.MY_EXTENSION2" के लिए फ़िल्टर ग्लोब जोड़ें)।

हमने चुना (2), और हम अपने स्वयं के फ़ोल्डर्स/फ़िल्टर जोड़कर अपना खुद का *.sln और *.vcproj उत्पन्न करते हैं। मैंने वेब पर किसी भी यूटिलिटीज को मदद करने के लिए नहीं देखा है (इसलिए हमें अपना खुद लिखना पड़ा)। प्रारूपों को रिवर्स इंजीनियर के लिए बहुत कठिन नहीं है, लेकिन यह काफी हद तक अनियंत्रित एक्सएमएल है, इसलिए आपको प्रयोग करना होगा। वहाँ केवल एक जोड़े अच्छा वेब लेख समझा इस तरह क्या, फाइल में है कर रहे हैं:

http://tim.oreilly.com/pub/a/dotnet/excerpt/vshacks_chap1/index.html?page=4

"उज्ज्वल पक्ष", फ़ाइलें, केवल एक्सएमएल हैं पर हमारे लिपियों को विकसित करने में हम केवल के माध्यम से परिवर्तन किए आईडीई, सहेजे गए, और "diffs" की तुलना में हम किस बदलाव के लिए चाहते हैं। जब हम अपनी फाइलों को संशोधित करते हैं तो वे परिवर्तन हमारी स्क्रिप्ट डालेंगे। इसलिए, यदि आप फ़ाइल को मैन्युअल रूप से संशोधित करते हैं, तो आप फ़ाइल को बदलकर देखने के लिए "diff" फ़ाइल को ही बदल सकते हैं, और अपनी खुद की स्क्रिप्ट बना सकते हैं। (आईएमएचओ, यह सबसे तेज़ और आसान मार्ग है, क्योंकि उपकरण आमतौर पर इन फ़ाइलों में हेरफेर करने के लिए मौजूद नहीं होते हैं।)

उपकरण CMake और QMake तरह *.vcproj/*.sln उत्पन्न, लेकिन वास्तव में फ़ोल्डर अनुकूलन बात नहीं करते है जैसे आप बात कर रहे हैं। हालांकि, हम इन आउटपुट को भी देखते हैं, क्योंकि इन फ़ाइलों में "चीजों को करने के एक से अधिक तरीके हैं", और फाइलों में अलग-अलग चालाक चीजें करने के लिए कई अनियंत्रित विशेषताएं होती हैं जो किसी भी तरह से इन उपकरणों को "खोजा" (इसलिए आप अपने जेनरेट आउटपुट की प्रतिलिपि बनाने का प्रयास कर सकते हैं)।

हमने .NET API को इन फ़ाइलों के साथ काम करने के लिए बहुत अधिक काम किया है, और वास्तव में उस प्रकार के हेरफेर के लिए डिज़ाइन नहीं किया गया है, लेकिन वाईएमएमवी।

+0

>> बड़े पैमाने पर अनियंत्रित एक्सएमएल, तो आपको प्रयोग करना होगा << विजुअल स्टूडियो 2005+ के लिए प्रोजेक्ट और समाधान फाइलें एमएसबिल्ड फाइलें हैं। हैक करने के लिए कुछ भी नहीं है। – AMissico

+0

>> फाइलों में अलग-अलग चालाक चीजें करने के लिए कई अनियंत्रित विशेषताएं प्रतीत होती हैं जो किसी भी तरह से इन उपकरणों को "खोजी गई" << ये अनियंत्रित विशेषताएं MSBuild की विशेषताएं हैं। – AMissico

+0

यह वीएस -2010 पर काम नहीं करेगा। वीएस -2008 में एक बग है जो परियोजनाओं को प्रोजेक्ट फ़ाइल में क्रम में होने का कारण बनती है। मैंने अपने लिए एक छोटा सा टूल लिखा और मेरी टीम थोड़ी देर पहले एसएसएल फाइल में परियोजनाओं को क्रमबद्ध करने के लिए इसे ठीक करने के लिए संगत करती है। VS2010 इस व्यवहार को हल करता है ताकि यदि आप नामों के लिए जा रहे हैं तो आपको कुछ अंडरस्कोर चाल या इसकी पसंद का उपयोग करना होगा। – sprite

1

हालांकि Custom Folder जोड़ने का कोई आसान तरीका नहीं है, Properties कस्टम फ़ोल्डर को "चोरी" करने का एक आसान तरीका है।

  1. प्रोजेक्ट में एक नियमित फ़ोल्डर जोड़ें। उदाहरण के लिए MyCustomerFolder
  2. ओपन प्रोज फ़ाइल एक्सएमएल। खोजें लाइन

    <AppDesignerFolder>Properties</AppDesignerFolder> 
    

    <AppDesignerFolder>MyCustomFolder</AppDesignerFolder> 
    
  3. के साथ बदलें पुनः लोड परियोजना।
  4. अब आपके पास एक कस्टम फ़ोल्डर है, जो हमेशा शीर्ष पर टिकेगा।

    enter image description here

+0

यह एक अच्छी चाल है, लेकिन यदि आप 1 से अधिक विशेष फ़ोल्डर जोड़ना चाहते हैं तो यह काम नहीं करता है। – Matt

+1

@ मैट - सच। हालांकि, सवाल स्पष्ट रूप से बताता है "मैं चाहता हूं कि मेरे फ़ोल्डरों में से एक अन्य फ़ोल्डरों के ऊपर दिखाई दे।" –

+0

हाँ, आप सही हैं। हालांकि यह एक समस्या भी होगी यदि उसे वास्तव में ऐप डिज़ाइनर फ़ोल्डर का उपयोग करने की आवश्यकता है और उसे अपने "विशेष फ़ोल्डर" से स्वतंत्र रखना चाहता है। – Matt

2

वी.एस. 2012 विशेषता यह है कि मैं सिर्फ पाया है, और यह मेरे लिए इस समस्या का समाधान। यह वीएस के लिए नया नहीं हो सकता है।

प्रोजेक्ट के तहत एक अग्रणी "_" (इसे पहले क्रमबद्ध करने के लिए) के साथ एक फ़ोल्डर बनाएं।

फ़ोल्डर के गुणों पर "नामस्थान प्रदाता" को गलत पर सेट करें।

वीएस (या रीशेर्पर?) कोड विश्लेषण तब शिकायत नहीं करता है कि "नामस्थान फ़ाइल स्थान से मेल नहीं खाता है", जो मेरे लिए जलन का स्रोत था जो अन्यथा मुझे इस मार्ग पर जाने से रोकता था।