2013-02-11 38 views
5

मुझे विंडोज़ रनटाइम घटक से एसक्लाइट डेटाबेस से कनेक्ट करने में समस्या हो रही है जो पृष्ठभूमि कार्यों को चलाने के लिए है .. मैं सभी डीएलएल को उसी तरह से जरूरी कर रहा हूं मैं मुख्य परियोजना के लिए जोड़ा .. लेकिन यह काम नहीं करता .. करीब 200 त्रुटियों को दिखाता .. मैं इस पोस्ट का पालन किया: https://github.com/praeclarum/sqlite-net/issues/104
लेकिन फिर भी मैं त्रुटियों मिल .. 2 ऐसी त्रुटियों हैं:विंडोज रनटाइम घटक से एसक्लाइट डेटाबेस से कनेक्ट करने के लिए कैसे करें जो पृष्ठभूमि कार्यों को चलाने के लिए है

त्रुटि 2 विंडोज रनटाइम क्लास 'SQLite.SQLiteException' में एक अवैध बेस प्रकार 'System.Exception' है। कस्टम अपवाद प्रकारों को निर्यात करने की अनुमति नहीं है। डी: \ एमसीएम -22-जनवरी-2013 \ सीसीएम \ टाइलबैकग्राउंड \ SQLite.cs 46 15 टाइलबैकग्राउंड

त्रुटि 92 टाइप करें 'SQLite.TableMapping.Column' एक नेस्टेड प्रकार है। नेस्टेड प्रकारों को विंडोज रनटाइम में निर्यात नहीं किया जा सकता है। डी: \ MCM-22-Jan-2013 \ CCM \ TileBackground \ SQLite.cs 1390 16 टाइलबैकग्राउंड

उत्तर

-1

मैं सफलतापूर्वक पृष्ठभूमि कार्य में स्क्लाइट का उपयोग कर रहा हूं। मेरे पास एक नियमित विंडोज स्टोर डीएल में स्क्लाइट-नेट स्रोत फाइलें हैं I मेरे मुख्य ऐप और मेरी पृष्ठभूमि कार्य परियोजनाओं दोनों को एक ही एसक्लाइट डीबी तक पहुंचने की आवश्यकता है, इसलिए वे दोनों इस डीएलएल को संदर्भित करते हैं।

ऐसा लगता है कि स्रोत कोड को इस तरह से संरचित करके, कि मैंने (अनजाने में) जिस मुद्दे को आप देख रहे हैं उससे बचा है। ध्यान दें कि मुझे इस मुद्दे के आसपास काम करने के लिए स्क्लाइट-नेट स्रोत फ़ाइलों को ट्विक करने की आवश्यकता नहीं थी।

4

मुझे आज इस समस्या का सामना करना पड़ा, और https://github.com/praeclarum/sqlite-net/issues/104 की सहायता से मैं इसे हल करने में सक्षम हूं। मूल रूप से आपके पास 2 चीजें हैं जो स्क्लाइट-नेट का नेट सेटअप है।

  1. आप SQLite.cs और SQLiteAsync.cs
  2. आप जो कुछ भी नाम स्थान अपने सी # परियोजना उपयोग कर रहा है के लिए नाम स्थान SQLite को बदलने की जरूरत के लिए internal के वर्ग परिभाषा (5 वीं स्तंभ) के सभी public बदलने के लिए, की जरूरत है।

इस तरह, यह रैपर आपके सी # घटक/विंडोज रनटाइम घटक का हिस्सा बन गया है, और यह निर्यात नहीं किया गया है।