PDA

نسخه کامل مشاهده نسخه کامل : نحوه انتقال DLL پایگاه داده Sqlite



acreza
30-09-2012, 13:32
سلام .
من از Sqlite در پروژام استفاده کردم ( VS2010) زبان C#

همانطور که میدانید SQlite اپن سورس بوده نیازی به نصب بروی سیستم کاربر نهایی نداره و فقط باید Dll مربوطه را بر روی سیستم کاربر نهایی کپی کنیم .
ولی نمیدانم چرا من هرکاری میکنم کپی میشه ولی خطا میده برنامه و کار نمیکنه !!!

من مراحل زیر را دقیقا انجام داده ام اگر جایی اشتباه است بفرمایید باید چی کار کنم :

ابتدا از مسیر زیر که مربوط به دانلود فایل ها میشه نسخه مربوط Development به ویژوال استادیو 2010 را که با فریم ورک 4 کار میکنه از سایتش دانلود میکنم .

از این لینک : [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


طبق تصویر زیر :



[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


سپس Extarct کرده فایل Setup را اجرا میکنم وقتی نصب برنامه تمام میشه یهک چنین مسیری در درایوی که ویندوز نصبه ایجاد میشه :

D:\Program Files\System.Data.SQLite\2010

که شامل فایل ها و فولدر های زیر است :

شاخه : bin ، Doc , GAC , Uninstall

توی شاخه bin فایل ها مقابل هستش : System.Data.SQLite.dll و System.Data.SQLite.Linq.dll و System.Data.SQLite.Linq.pdb و System.Data.SQLite.pdb و test.exe و northwindEF.dbو test.exe.config

فایل test.exe ای که خودش گذشته را وقتی اجرا میکنم یک فرم باز میشه که وقتی دکمه Run را میزنم برنامه خطا میده دقیقا بصورت تصویر زیر :

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]



حالا توی ویژوال استادیو دات نت 2010 name spase مربوطه را اضافه میکنم : using system.data.sqlite;
بعد میرم Refrence اش را هم به لیست رفرنس هام توی پروژه اضافه کنم . وقتی از منو Debug ---> Add Refrence را میزنم طبق راهنمایی که در همه سایت ها نوشته شده باید در تب دانت نت (.NET) بتوانم System.Data.Sqlite را پیدا کنم ولی همانطور که در تصویر زیر مشاهده میکنید چنین چیزی وجود ندارد !!!

که نمدانم چرا ؟؟؟ چون این پروایدری که ما دانلود کردیم و نصب کردیم مخصوص وِیژوال استادیو دات نت 2010 هستش و باید بعد از نصبی که کردیم حالا Dll اش توی این لیست بیاد !!



[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]



بعد چون توی این لیست نیست میروم دکمه Browse را میزنم و از همون مسیر : D:\Program Files\System.Data.SQLite\2010 توی شاخه bin فایل System.data.sqlite.dll را انتخاب میکنم و OK میکنم تا به لیست رفرنسهای پروژم اضافه بشه .

بعد توی لیست رفرنس ها بر روی اون راست کلیک کرده و پروپرتی Copy Local را برابر True قرار میدهم که هر جا پروژه من رفت باهاش کپی بشه ، طبق تصویر زیر :

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


وقتی روی سیتم خودم هستم برنامه به درستی کار میکنه با دیتا بیس ( درضمن فایل دیتابیسlم درشاخه پروژم کنار همون فایل Form1.cs قرار داره که وقتی برنامه را در ویژوال ران میکنم خودش یک کپی ازش میگیره و توی شاخه bin > Debug کنار فایل اجرایی .exe ام میگذاره .

مشکل اینجاست که وقتی من شاخه Debug را که حالا حاوی پروژه اجرایی + دیتابیس + System.Data.Sqlite.dll هستش را بر روی یه سیستم دیگه که دانت 4 روش قبلا نصب شده میبرم فرمم اجرا میشه ولی وقتی نیاز به دیتابی هست یک همچین پیغامی میده : Could not Load File or assembely 'System.Data.Sqlite.Dll" or ... یک پنجرا پیغام خطا شبیه همون خطایی که در تصویر اول هنگام اجرای test.exe میداد ولی با این مظمون که فایل system.data.sqlite.dll یا فایلهایی که به اون وابسته هستند نمتوانند لود بشوند .


حالا من سایتش را بیشتر زیرو روکردم و به سوالات رایج کاربران رسیدم در مورد نحوه نصب و اجرا برای سیستم develop و سیستم کاربر نهایی که اینها را نوشته بود :




برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


همانطور که میبینید تاکید کرده نیاز به نصب نداره البته من زیاد انگلیسیم خوب نیست فقط همینش را میفهمم


من یک لینک دیگه اش را دانلود کردم که این طور نوشته :



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



فایل Dll هاس رو بجای فایل Dll های خودم در سیستم طرف کپی کردم ولی بازم فایده نداشت

یکی گفت این فایل را : SQLite.Interop.dll بگذار کنار برنامه اجراییت در سیستم کاربر نهایی ولی بازم نشد

فقط وقتی برنامه Setup ای که روی سیستم خودم نصبکرده بودم را روی سیستم کابر نهایی هم نصب کنم مشکل حل میشه

واقعا خسته شدم باید چی کار کنم ؟