जब आप इस स्थिति में आते हैं, तो एक पुनर्निर्माण-सभी प्रदर्शन करने का प्रयास करें। यदि यह समस्या को ठीक करता है, तो आपके पास वही समस्या हो सकती है जो मेरे पास थी।
कुछ पृष्ठभूमि (मेरी समझ) :
SQLite में 1 प्रबंधित असेंबली (System.Data.SQLite.dll) और कई प्लेटफ़ॉर्म विशिष्ट असेंबली (SQLite.Interop.dll) हैं। Nuget के साथ SQLite स्थापित करते समय, Nuget आपकी परियोजना के लिए प्लेटफ़ॉर्म विशिष्ट असेंबलीज़ को जोड़ देगा (कई फ़ोल्डरों के भीतर: \ x86, \ x64), और इन dll को "हमेशा कॉपी करें" कॉन्फ़िगर करें।
लोड होने पर, प्रबंधित असेंबली \ x86 और \ x64 फ़ोल्डर के अंदर प्लेटफ़ॉर्म विशिष्ट असेंबली के लिए खोज करेगी। आप यहाँ पर अधिक देख सकते हैं । अपवाद यह प्रबंधित असेंबली इन फ़ोल्डरों के अंदर प्रासंगिक (SQLite.Interop.dll) को खोजने का प्रयास कर रही है (और विफल हो रही है)।
मेरा परिदृश्य :
मेरे हल में 2 परियोजनाएँ हैं; एक WPF ऐप, और एक क्लास लाइब्रेरी। WPF ऐप क्लास लाइब्रेरी का संदर्भ देता है, और क्लास लाइब्रेरी संदर्भ SQLite (Nuget द्वारा स्थापित)।
मेरे लिए मुद्दा तब था जब मैं केवल WPF ऐप को संशोधित करता था, वीएस एक आंशिक पुनर्निर्माण करने का प्रयास करता है (यह महसूस करते हुए कि निर्भर डीएल बदल गया है)। इस प्रक्रिया में कहीं, वीएस \ x86 और \ x64 फ़ोल्डरों की सामग्री (SQLite.Interop.dk दूर उड़ा) को साफ करता है। जब मैं एक पूर्ण पुनर्निर्माण-सभी करता हूं, तो वीएस फ़ोल्डर्स और उनकी सामग्री को सही ढंग से कॉपी करता है।
मेरा समाधान :
इसे ठीक करने के लिए, मैंने xcopy का उपयोग करके पोस्ट-बिल्ड प्रक्रिया को जोड़ने के लिए क्लास लाइब्रेरी से अपने WPF प्रोजेक्ट \ बिन निर्देशिका में \ x86 और \ x64 फ़ोल्डर की प्रतिलिपि बनाने के लिए मजबूर किया।
वैकल्पिक रूप से, आप बिल्ड कॉन्फ़िगरेशन / आउटपुट निर्देशिकाओं के साथ कट्टर चीजें कर सकते हैं।