سلام .
من از Sqlite در پروژام استفاده کردم ( VS2010) زبان C#
همانطور که میدانید SQlite اپن سورس بوده نیازی به نصب بروی سیستم کاربر نهایی نداره و فقط باید Dll مربوطه را بر روی سیستم کاربر نهایی کپی کنیم .
ولی نمیدانم چرا من هرکاری میکنم کپی میشه ولی خطا میده برنامه و کار نمیکنه !!!
من مراحل زیر را دقیقا انجام داده ام اگر جایی اشتباه است بفرمایید باید چی کار کنم :
ابتدا از مسیر زیر که مربوط به دانلود فایل ها میشه نسخه مربوط Development به ویژوال استادیو 2010 را که با فریم ورک 4 کار میکنه از سایتش دانلود میکنم .
از این لینک :
http://system.data.sqlite.org/index....downloads.wiki
طبق تصویر زیر :
http://axgig.com/images/14537708821441894415.jpg
سپس 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 را میزنم برنامه خطا میده دقیقا بصورت تصویر زیر :
http://axgig.com/images/95176301595167264657.jpg
حالا توی ویژوال استادیو دات نت 2010 name spase مربوطه را اضافه میکنم : using system.data.sqlite;
بعد میرم Refrence اش را هم به لیست رفرنس هام توی پروژه اضافه کنم . وقتی از منو Debug ---> Add Refrence را میزنم طبق راهنمایی که در همه سایت ها نوشته شده باید در تب دانت نت (.NET) بتوانم System.Data.Sqlite را پیدا کنم ولی همانطور که در تصویر زیر مشاهده میکنید چنین چیزی وجود ندارد !!!
که نمدانم چرا ؟؟؟ چون این پروایدری که ما دانلود کردیم و نصب کردیم مخصوص وِیژوال استادیو دات نت 2010 هستش و باید بعد از نصبی که کردیم حالا Dll اش توی این لیست بیاد !!
http://axgig.com/images/95176301595167264657.jpg
بعد چون توی این لیست نیست میروم دکمه Browse را میزنم و از همون مسیر : D:\Program Files\System.Data.SQLite\2010 توی شاخه bin فایل System.data.sqlite.dll را انتخاب میکنم و OK میکنم تا به لیست رفرنسهای پروژم اضافه بشه .
بعد توی لیست رفرنس ها بر روی اون راست کلیک کرده و پروپرتی Copy Local را برابر True قرار میدهم که هر جا پروژه من رفت باهاش کپی بشه ، طبق تصویر زیر :
http://axgig.com/viewer.php?file=2544596...675243.jpg
وقتی روی سیتم خودم هستم برنامه به درستی کار میکنه با دیتا بیس ( درضمن فایل دیتابیس ام درشاخه پروژم کنار همون فایل 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 و سیستم کاربر نهایی که اینها را نوشته بود :
(8) How do I install System.Data.SQLite on a development machine?
Strictly speaking, there is no need to install System.Data.SQLite on any development machine (e.g. via the setup). The recommended way to use the assemblies is:
Download the precompiled binary package for your target framework and processor architecture (e.g. 32-bit x86, .NET Framework 2.0). Extract the package to a directory named "Externals" inside your project directory. Add a reference to the "System.Data.SQLite" assembly from the "Externals" directory. If necessary (i.e. you require LINQ support), also add a reference to the "System.Data.SQLite.Linq" assembly from the "Externals" directory.
Alternatively, when using Visual Studio 2010 or later, you can simply use the NuGet package that corresponds to your target processor architecture. Installing the assemblies into the Global Assembly Cache is not recommended as it may cause conflicts with other applications installed on the machine.
(9) How do I install System.Data.SQLite on end-user machines?
Strictly speaking, there is no need to install System.Data.SQLite on any end-user machine (e.g. via the setup). The recommended way to deploy the assemblies is "application local" (i.e. copy them to the directory the application is installed to). Installing the assemblies into the Global Assembly Cache is not recommended as it may cause conflicts with other applications installed on the machine.
همانطور که میبینید تاکید کرده نیاز به نصب نداره البته من زیاد انگلیسیم خوب نیست فقط همینش را میفهمم
من یک لینک دیگه اش را دانلود کردم که این طور نوشته :
Precompiled Binaries for 32-bit Windows (.NET Framework 4.0) sqlite-netFx40-binary-bundle-Win32-2010-1.0.82.0.zip
(1.71 MiB)
This binary package features the mixed-mode assembly and contains all the binaries for the x86 version of the System.Data.SQLite 1.0.82.0 (3.7.14) package. The Visual C++ 2010 SP1 runtime for x86 and the .NET Framework 4.0 are required.
(sha1: 6f6cdfddb08f254b744e7088b4825db02bec73da)
فایل Dll هاس رو بجای فایل Dll های خودم در سیستم طرف کپی کردم ولی بازم فایده نداشت
یکی گفت این فایل را : SQLite.Interop.dll بگذار کنار برنامه اجراییت در سیستم کاربر نهایی ولی بازم نشد
فقط وقتی برنامه Setup ای که روی سیستم خودم نصبکرده بودم را روی سیستم کابر نهایی هم نصب کنم مشکل حل میشه
واقعا خسته شدم باید چی کار کنم ؟