2016-07-22 11 views
6

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

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

संपादित करें: विजुअल स्टूडियो 2017 आरसी के रूप में, साझा परियोजनाएं .NET कोर परियोजनाओं के साथ ठीक से काम करती हैं।

उत्तर

5

विजुअल स्टूडियो 2017 आरसी के रूप में, साझा परियोजनाएं ठीक से .NET कोर प्लेटफॉर्म पर भी काम करती हैं।

+0

मुझे लगता है कि "ठीक से" की परिभाषा पर निर्भर करता है। मैंने उस परियोजना को साझा किया है जिसमें यूनिट टेस्ट, और दो टेस्ट प्रोजेक्ट्स, एक .NETCoreApp1.0 और एक .NET Framework 4.6.2 शामिल है जो दोनों साझा प्रोजेक्ट को संदर्भित करते हैं। साझा परीक्षण केवल .NET Framework में दिखाई देता है। यह एक .NETCoreApp1.1 के साथ भी सच है। –

+1

मैं हमेशा अपने साझा प्रोजेक्ट को एक डीएल में बंडल करता हूं, उदाहरण के लिए एक .NET कोर 1.1 क्लास लाइब्रेरी या .NET Framework क्लास लाइब्रेरी। फिर मैं अपने परीक्षण परियोजना के लिए उस डीएल संदर्भित करता हूं।यह ध्यान में रखते हुए कि पुस्तकालयों के विशिष्ट संस्करणों पर निर्भर कैसे परीक्षण करते हैं, मैंने वास्तव में दो पुस्तकालयों के बीच परीक्षण साझा करने की कोशिश नहीं की है। वैसे भी, आशा है कि आप अंतर्निहित रिपोर्टिंग टूल का उपयोग करके माइक्रोसॉफ्ट को अपने निष्कर्षों की रिपोर्ट करें - उन्होंने हाल ही में रिपोर्ट की गई नवीनतम रिलीज में एक समस्या तय की है, जहां आप विजुअल स्टूडियो का उपयोग करके साझा परियोजना संदर्भ को हटा नहीं सकते थे (करना था तो इसके बजाय प्रोजेक्ट फ़ाइल में) – Arwin

3

ऐसा लगता है कि यह संभव नहीं है - मैं यह पता लगाने की कोशिश कर रहा हूं कि आज इसे कैसे करें! सबसे अच्छा है कि मैं मिल गया है इस तो सवाल से आता है:

How can I use xproj (asp.net/dotnet core project) with shproj (shared project)?

क्या मैं इससे दूर ले रहा हूँ मैं साझा परियोजनाओं कि सीधे NET45 द्वारा/46 वर्ग पुस्तकालयों संदर्भित किया जा सकता है, लेकिन जो बना सकते हैं वह यह है कि उपरोक्त उदाहरण, अपने साझा किए परियोजना "TesterShared" कहा जाता है और दृश्य में

"buildOptions": { 
    "compile": { 
    "include": [ 
     "../../TesterShared/**/*.cs" 
    ] 
    } 
} 

- एक project.json आधारित वैकल्पिक हल का उपयोग कर नेट कोर परियोजनाओं में खींच लिया जा करने के लिए निम्नलिखित "buildOptions" जोड़कर, होगा स्टूडियो ने समाधान की जड़ में बनाया है - .NET कोर प्रोजेक्ट्स के विपरीत यह एक "src" फ़ोल्डर के भीतर बनाता है (इसलिए डबल "../" पैरेंट पथ नेविगेशन)।

+0

यदि यह काम करता है, तो ऐसा कुछ है जो मैं समय के साथ रह सकता था! फिर उम्मीद है कि अगला विजुअल स्टूडियो अपडेट इसे ठीक करेगा। – Arwin

+1

मुझे भी उम्मीद है! चूंकि project.json को स्पष्ट रूप से एक अलग तरह की .csproj फ़ाइल के साथ प्रतिस्थापित किया जा रहा है, हो सकता है कि वे इसे तब करेंगे। मैं इस दृष्टिकोण का उपयोग कर रहा हूं इसलिए मुझे पता है कि यह ठीक काम करता है लेकिन कुछ सीमाएं हैं .. मैं साझा प्रोजेक्ट में ".sqlite" डेटाबेस फ़ाइल शामिल करना चाहता था और इसके साथ समस्याएं थीं (वहां "copyToOutput" विकल्प हैं जो लगभग जो मैं चाहता हूं उसे प्राप्त करें, लेकिन काफी नहीं)। साथ ही, यदि आप साझा प्रोजेक्ट में फ़ाइलों को संपादित करते हैं तो आपको अपने .NET कोर प्रोजेक्ट के पुनर्निर्माण को मजबूर करने की आवश्यकता है - यह नहीं पता होगा कि साझा प्रोजेक्ट में किए गए परिवर्तनों को पुनर्निर्माण की आवश्यकता होती है। –

+0

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

संबंधित मुद्दे