के बजाय .NET मानक \ Core को लक्षित करने की आवश्यकता है। मैं विजुअल स्टूडियो 2017 के साथ आए डिफ़ॉल्ट Roslyn SDK टेम्पलेट का उपयोग कर रहा हूं। वे परियोजनाएं जो .NET Framework पोर्टेबल को लक्षित करती हैं। मुझे लगता है कि रोज़लिन एक्स्टेंसिबिलिटी प्रोजेक्ट पोर्टेबल के बजाय .NET मानक \ Core को लक्षित कर सकता है और मैं टेम्पलेट्स या रोज़लिन विश्लेषक \ रेफैक्टरिंग प्रोजेक्ट का नमूना ढूंढ रहा हूं जिसे मैं पढ़ सकता हूं।Rosetn विश्लेषक को .NET पोर्टेबल
उत्तर
मैंने एक नई रोज़लीन परियोजना पर काम करना शुरू कर दिया और टेम्पलेट का उपयोग करने के बजाय चीजों को एक-एक करके बनाया। https://github.com/IKoshelev/Roslyn.AutoLogging/commit/1f88e3e49141e0fa425c51fdcb3457a7c3d6dcaa
मैं निम्नलिखित लक्ष्यीकरण की सुविधा में कामयाब रहे: - नेट स्टैंडर्ड 1.3 (इस .dll वितरित किया जाएगा, संस्करण कम से कम रखा)
UnitTests परियोजना -
पुनर्रचना परियोजना नेट कोर 2.0
VSIX परियोजना - .NET फ्रेमवर्क 4.6 (मेरा मानना है कि, केवल पूर्ण दृश्य स्टूडियो VSIX का समर्थन करता है, तो यह है कि ठीक है)
अद्यतन रोसलिन के संशोधन अभी थोड़ा और जटिल है, यानी यदि आप विजुअल स्टूडियो 2015 के साथ अपने एक्सटेंशन का उपयोग करना चाहते हैं तो आपको पीसीएल पुस्तकालयों का उपयोग करना होगा।इस आलेख के अंत में अधिक जानकारी article on Roslyn
डिफ़ॉल्ट विश्लेषक टेम्पलेट से परिवर्तित विश्लेषक का नमूना here उपलब्ध है। TestAnalyzerStandard
के साथ तुलना के लिए मूल विश्लेषक है जो .NET मानक को लक्षित करता है।
कदम यह काम कर रहे हैं:
- नया .NET स्टैंडर्ड पुस्तकालय
- लाइब्रेरी बनाएं नेट स्टैंडर्ड 1.3 लक्ष्य बनाना होगा। यदि आप वीएस (एक्सटेंशन लक्ष्य .NET 4.6) के अंदर विस्तार के रूप में विश्लेषक चलाने की इच्छा रखते हैं तो यह आवश्यक है। मानक संस्करणों और पूर्ण ढांचे संस्करणों के बीच मैपिंग here उपलब्ध है। यदि आप 1.3 से कम संस्करण को लक्षित करने का प्रयास करते हैं, तो आप आवश्यक विश्लेषक पैकेज शामिल करने में सक्षम नहीं होंगे।
Microsoft.Composition
नवीनतम संस्करण के लिए nuget पैकेज जोड़ें। इसकी आवश्यकताMicrosoft.CodeAnalysis.CSharp.Workspaces
है। यदि आप पहले वर्कस्पेस जोड़ने का प्रयास करते हैं, तो आपको त्रुटि मिलेगी जो संदर्भ पैकेज संदर्भित नहीं है।Microsoft.CodeAnalysis.CSharp
के लिए nuget पैकेज जोड़ें (मैं उपयोग कर रहा हूँ नवीनतम 1. * संस्करण)Microsoft.CodeAnalysis.Csharp.Workspaces
के लिए पैकेज nuget जोड़ें (संस्करणMicrosoft.CodeAnalysis.CSharp
के संस्करण से मेल खाना चाहिए)।- इस बिंदु पर आप पोर्टेबल प्रोजेक्ट से कोड कॉपी कर सकते हैं और इसे बना सकते हैं। कोई त्रुटि नहीं होनी चाहिए (अगर वीएस अभी भी लाल squiggles प्रदर्शित कर रहा है तो आपको समाधान बंद करना और फिर से खोलना पड़ सकता है)।
- वी.एस. विस्तार के काम करने के लिये
source.extension.vsixmanifest
खोलते हैं, तो मानक पुस्तकालय नेट के लिए संपत्ति टैब और परिवर्तन संदर्भ के लिए जाना - पैकेज .nuget बनाने के लिए सिर्फ अमल
nuget pack Diagnostic.nuspec .
।Diagnostic.nuspec
Nuget 2.x के लिए मान्य है। यदि आप वीएस 2017 में पैकेज प्रबंधन कंसोल के माध्यम से nuget का उपयोग कर रहे हैं तो आपको<file src="*.dll" ..."
को<file src="bin\*\netstandard1.3\*.dll" ...
में बदलना होगा।
उन चरणों का विश्लेषण विश्लेषकों के साथ मेरे प्रयोग के परिणामस्वरूप हुआ है (मैंने पहले डीएलएल बनाने के साथ खेला था जो पोर्टेबल लाइब्रेरी होने की बजाय पूर्ण ढांचे को लक्षित करता था)। वे किसी भी माध्यम से आधिकारिक नहीं हैं।
मैंने प्रोजेक्ट को संदर्भित किया है, हटा दिया है केवल मूल संस्करण छोड़कर विश्लेषक के पोर्टेबल संस्करण और इसे बनाने की कोशिश की। अब तक, वीएसआईएक्स काम नहीं करता है और नगेट में पैकेज में डीएल शामिल नहीं है। –
मैं विजुअल स्टूडियो 2017 (15.2) में बनाम और न्यूज पैकेज दोनों का परीक्षण कर रहा था और वे दोनों ठीक काम कर रहे थे। मैंने पोर्टेबल विश्लेषक से संदर्भ हटा दिए और पैकेजिंग के लिए 'Diagnostic.nuspec' को इंगित करने के लिए '.csproj' फ़ाइल को अपडेट किया। अब आप 'TestAnalyzerStandard' ->' पैक 'पर राइट क्लिक करके विजुअल स्टूडियो से सीधे nuget पैकेज बना सकते हैं। Nuget पैकेज डीबग (या रिलीज) फ़ोल्डर में मौजूद होगा। मैंने 'testAnalyzerStandard \ Publish' फ़ोल्डर में निर्मित बनाम एक्सटेंशन और nuget पैकेज भी शामिल किया है ताकि आप देख सकें कि मेरी मशीन पर क्या उत्पादित किया गया है। – nejcs
मुझे बाद में जांचना होगा (क्षमा करें, अब बहुत लोड हो गया है)। मैंने बक्षीस से सम्मानित किया। –
- 1. पोर्टेबल .NET और MONO मतभेद
- 2. पोर्टेबल .NET लाइब्रेरी को .NET कोर लक्ष्यीकरण कैसे पैकेज करें?
- 3. .NET पोर्टेबल क्लास लाइब्रेरी और यूडीपी समर्थन
- 4. क्या .NET स्ट्रिंग हैश फ़ंक्शन पोर्टेबल है?
- 5. पोर्टेबल क्लास लाइब्रेरी और .NET ConcurrentDictionary
- 6. क्लैंग विश्लेषक
- 7. कोड विश्लेषक?
- 8. स्टेमिंग विश्लेषक
- 9. प्रोफाइलर/विश्लेषक?
- 10. पोर्टेबल क्लास लाइब्रेरी
- 11. सिस्टम का उपयोग करना। थ्रेडिंग। टास्क। .NET पोर्टेबल सबसेट
- 12. पोर्टेबल क्लास लाइब्रेरी परीक्षण
- 13. ल्यूसीन मानक विश्लेषक अवधि
- 14. एचटीएमएल कोड विश्लेषक
- 15. जावास्क्रिप्ट स्रोत कोड विश्लेषक
- 16. रोज़लिन विश्लेषक नियम
- 17. Appveyor nuget विश्लेषक
- 18. कस्टम विश्लेषक elasticsearch-rails
- 19. पोर्टेबल आईएस सी ++ कैसे पोर्टेबल है?
- 20. पोर्टेबल MongoDB?
- 21. .net
- 22. पीएमडी - कोड विश्लेषक चेतावनियां
- 23. MySQL क्वेरी विश्लेषक
- 24. जावास्क्रिप्ट ऑडियो स्पेक्ट्रम विश्लेषक
- 25. सोलर क्वेरी/फील्ड विश्लेषक
- 26. पोर्टेबल ग्रहण
- 27. पोर्टेबल बराबर
- 28. पोर्टेबल हॉटस्पॉट
- 29. पोर्टेबल बाइनरी
- 30. पोर्टेबल एरलांग
यहां कोई समस्या है, या तो एक नई परियोजना शुरू करें और विश्लेषकों का संदर्भ लें, और उसके बाद इसे अपने बनाम से कॉल करें, या सीएसपीआरजे फ़ाइल को संशोधित करें, और पोर्टेबल लाइब्रेरी –
को प्रतिस्थापित करें कोशिश की, लेकिन यह सीधे आगे नहीं है। क्या आप एक उदाहरण प्रोजेक्ट के बारे में जानते हैं, मैं इसे देख सकता हूं, जहां यह सफलतापूर्वक किया गया था? –
एकमात्र परियोजना मुझे पता है कि मैं सफलतापूर्वक काम कर रहा हूं वह यहां है, जो मुझे नहीं लगता कि मेरी कंपनी शेयर की अनुमति देगी। लेकिन मैंने इस [उत्तर] के साथ पीछा किया (https://stackoverflow.com/a/23135170/1938988) –