2012-11-21 12 views
5

के कई संस्करणों के लिए विजुअल स्टूडियो एडिन का विकास करना मुझे हमारे आंतरिक उपयोग के लिए विजुअल स्टूडियो के लिए कुछ एक्सटेंशन विकसित करने का कार्य दिया गया है। इन्हें विजुअल स्टूडियो (वीएस -2008, 2010 और 2012 - वीएस2005 के कुछ अलग-अलग संस्करणों का समर्थन करना होगा, लेकिन यह आवश्यक नहीं होगा)। मैं इन्हें यथासंभव एक तरह से विकसित करना चाहता हूं, जितना संभव हो उतना कोड पुन: उपयोग करना, इस प्रकार के टूल्स के लिए मौजूदा प्रोजेक्ट स्ट्रक्चर में फ़िट करना, जो एक विजुअल स्टूडियो 2012 है। एसएलएन।विजुअल स्टूडियो

इस तरह के विस्तार को विकसित करने का सबसे अच्छा/आसान तरीका क्या है? एक VSPackage परियोजना? क्या मैं 2008-संगत VSPackage बना सकता हूं जिसे वीएस2012 में विकसित किया गया है?

इस समय मुझे जो एक्सटेंशन मैं लिख रहा हूं, उनके लिए सुविधाओं की आवश्यकता बहुत ही बुनियादी है - मुझे टूल्स मेनू कमांड, संभवतः एक कस्टम टूलविंडो बनाने की आवश्यकता है। मेरी आवश्यकताओं को बाद में बदल सकता है लेकिन मुझे इस समय संपादक सजावट या इस तरह की किसी भी चीज़ की आवश्यकता नहीं है।

मैं this सवाल जो एक नकली जैसा लग सकता है देखा, लेकिन इस सवाल का जवाब है जो स्वीकार कर लिया गया इस सवाल का जवाब नहीं है, इसलिए ...

उत्तर

3

यह वास्तव में क्या आपका एक्सटेंशन क्या करने जा रहा है पर निर्भर करता है।

वीएस 2008008 एक्सटेंशन (.vsix) का समर्थन नहीं करता है और आपको इसके लिए एमएसआई के रूप में तैनात VSPackage लिखना होगा। आपको वीएस -2010 (आसान संपादक एकीकरण और एमईएफ के माध्यम से बनाम सेवाओं तक पहुंच) में पेश की गई कई नई सुविधाओं तक पहुंच नहीं होगी, लेकिन मूलभूत सामान जैसे कि समाधान/प्रोजेक्ट/फाइलों को मैनिपुलेट करना ठीक होना चाहिए और सभी संस्करणों पर काम करना चाहिए (उदाहरण के लिए DTE ठीक हो जाना चाहिए)।

जहां तक ​​मुझे याद है VS2008 के लिए आप भी obtain a PLK, जो अब 2010 और 2012

के लिए आवश्यक है मैं VS2012 में 2008 पैकेज के विकास प्रयास नहीं किया है की आवश्यकता होगी, लेकिन आप निश्चित रूप से 2010 विस्तार विकसित कर सकते हैं 2012 में।

यह भी याद रखें कि वीएस -2008 नेट 3.5 है, इसलिए आपके कोड को .NET 3.5 और सी # का संस्करण उपयोग करना चाहिए, जो पोर्टेबल होने का समर्थन करता है।

+0

इस समय मेरी आवश्यकताएँ बहुत बुनियादी हैं - टूल्स मेनू कमांड, शायद एक टूलविंडो (उस जानकारी के साथ प्रश्न अपडेट करें)। मेरे पास सजावट की तरह बाद में और अधिक उन्नत आवश्यकताएं हो सकती हैं, लेकिन तब तक हमें वीएस2012 पर होना चाहिए। पीएलके चीज – JohnL

+1

पीएलके को पुन: उपयोग करने की संभावनाओं को मार सकती है, पीएलके केवल आपके पैकेज को लोड करने के लिए वीएस 2008 के लिए जरूरी है, कोड अभी भी पुन: प्रयोज्य होना चाहिए। AFAIK जोड़ना मेनू मेनू आदेश और टूल विंडो VS के सभी तीन संस्करणों में समान कार्य करता है। एक चीज जो आप कर सकते हैं वह है कि आप जिस वीएस को लक्षित कर रहे हैं उसके लिए अलग-अलग परियोजनाएं हों (वीएस -2010 और वीएस2012 .vix होगा जबकि वीएस 2008 में एमएसआई परिनियोजन होगा) और फाइलों को उनके बीच लिंक के रूप में साझा करें, इससे 2010-12 के लिए तैनाती/डिबगिंग आसान होनी चाहिए (धन्यवाद। vsix) और प्रत्येक प्रोजेक्ट अलग .net संस्करण (2008-3.5, 2010-4.0, 2012-4.5) को लक्षित कर सकता है। –

+0

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