संदर्भित करने के लिए संदर्भित डीएलएल की प्रतिलिपि नहीं बनाई जा रही है। इस प्रश्न से कई बार पूछा जा सकता है और शायद मैं यहां Google के रूप में खोज कार्यों का उपयोग करने में भी बुरा हूं लेकिन मुझे अभी तक इस प्रश्न का उत्तर नहीं मिला है।प्रोजेक्ट
मैं वर्तमान में दो परियोजनाओं, परियोजना एक्स, वाई और परियोजना परियोजना जेड (जो केवल मैपिंग रखती है)
परियोजना एक्स एक FluentNhibernate परियोजना जो इस तरह मेरे sessionfactories और चीजों को धारण करता है मिल गया है। तो यह भी है जहां मैपिंग लोड हो जाते हैं और चीजें (यह महत्वपूर्ण है और मुझे संदेह है कि यह मेरी समस्या का पूरा कारण हो सकता है)
अब प्रोजेक्ट एक्स में मैंने माइक्रोसॉफ्ट का उपयोग करने वाली एक असेंबली का संदर्भ दिया है। SqlServer.Types.dll।
प्रोजेक्ट वाई एक ऐसी सेवा है जो इसके डेटाबेस कनेक्शन के लिए प्रोजेक्ट एक्स का उपयोग करती है।
सभी संभावनाएं मेरी विकास मशीन पर पूरी तरह से ढूंढें और चलाएं, हालांकि हमारे सर्वर पर तैनात होने पर वे कार्य करने में विफल रहे (रनटाइम त्रुटियां)। त्रुटि बहुत अस्पष्ट थी क्योंकि यह एक लापता FluentNHibernate असेंबली की ओर इशारा किया जो मामला नहीं था।
Procmon.exe सौभाग्य से Microsoft.SqlServer.Types.dll को लोड करने का प्रयास करने वाला कोड दिखाता है, क्योंकि सर्वर के पास SQL सर्वर स्थापित नहीं है (मेरा क्लाइंट या तो नहीं है लेकिन इसमें एक प्रबंधन स्टूडियो है जो अधिकतर इसे इंस्टॉल करता है डीएलएल भी)।
अब तक इतना अच्छा है, डीएलएल की प्रतिलिपि बनाई और यह काम किया (याय!)।
अब मुझे लगा कि मैं प्रोजेक्ट एक्स का उपयोग करके अन्य परियोजनाओं में इस संदर्भ की प्रतिलिपि बनाने के लिए प्रोजेक्ट एक्स में असेंबली जोड़ूंगा। ऐसा नहीं हुआ .... इसलिए मैंने 'कॉपी कॉपी लोकल' सेट करने की कोशिश की। सच करने के लिए सेटिंग।
दुर्भाग्य से यह अभी भी संदर्भित परियोजना वाई
को .dll नकल नहीं करता है वहाँ ऐसा करने के लिए एक रास्ता है या यह दृश्य स्टूडियो चालाक beeing और परियोजना वाई साकार इस .dll की जरूरत नहीं है और है इस प्रकार इसे कॉपी करने से इंकार कर दिया?
(के बाद से परियोजना जेड वास्तविक संदर्भ की जरूरत है और परियोजना एक्स भार इस विधानसभा @ रन टाइम वहाँ जेड और एक्स के बीच 'कठिन' संदर्भ नहीं है)
सकता है किसी भी Stackoverflow प्रतिभा कुछ प्रकाश इस पर ईमानदारी से मैं के बाद से शेड मुझे यह जानना अच्छा लगता है कि यह इस तरह से क्यों व्यवहार कर रहा है (और आदर्श रूप से ऐसा व्यवहार करने का एक तरीका है जैसा मैं चाहता हूं)।
मैं अभी भी Microsoft.SqlServer.Types.dll के बारे में बात कर रहा हूँ हाँ। लेकिन इस मामले में आपके वास्तविक सॉफ्टवेयर के साथ इसे वितरित क्यों करना बुरा होगा? क्या यहां काम पर कुछ बेहतरीन अभ्यास चीज है? –
प्रकार डीएलएल सिर्फ डीएलएस के चारों ओर एक रैपर है जो एसक्यूएल सर्वर द्वारा स्थानिक ऑपरेशन करने के लिए भी उपयोग किया जाता है ... उन डीएलएस सी/सी ++ में लिखे गए हैं और यदि आप सिर्फ प्रकार के डीएलएल पर प्रतिलिपि बनाते हैं तो कॉपी नहीं किए जाते हैं ... आप कारण भी SQLServerSpatial.dll (जो देशी डीएल है) की प्रतिलिपि बना सकते हैं – MichaC
ठीक है, मैं इन प्रकारों का उपयोग तीसरे स्थान पर लिखे गए स्रोत कोड में कर रहा हूं जिसे मैंने भौगोलिक जानकारी और एसक्यूएल सर्वर 2012 बोली के साथ धाराप्रवाह निबर्ननेट का उपयोग करने के लिए बदल दिया है। आपके द्वारा प्रदान की गई जानकारी के अनुसार सीएलआर प्रकारों को स्थापित करना हालांकि काम करता है। तो मैं कुछ और परीक्षण करूंगा और यदि सफल होते हैं तो मैं आपका जवाब चिह्नित करूंगा। मैंने कहा कि मुझे संदेह है कि विजुअल स्टूडियो ने सीएल/सी ++ में लिखे गए मधुमक्खियों के कारण डीएलएल की प्रतिलिपि बनाने से इनकार कर दिया है। अंतर्निहित मुद्दा अभी भी खड़ा है और मुझे यहां एक जवाब पसंद आएगा, हालांकि अन्य जो माइक्रोसॉफ्ट के कारण अपना रास्ता खोजते हैं। SQLServer.Types.dll को इंस्टॉलर का उपयोग करना चाहिए। –