امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
نحوه انتقال DLL پایگاه داده Sqlite
نویسنده پیام
acreza آفلاین
تازه وارد

ارسال‌ها: 2
موضوع‌ها: 1
تاریخ عضویت: مهر ۱۳۹۱

تشکرها : 0
( 0 تشکر در 0 ارسال )
ارسال: #1
نحوه انتقال DLL پایگاه داده Sqlite
سلام .
من از 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 ای که روی سیستم خودم نصبکرده بودم را روی سیستم کابر نهایی هم نصب کنم مشکل حل میشه

واقعا خسته شدم باید چی کار کنم ؟
۰۹-مهر-۱۳۹۱, ۱۵:۲۲:۰۳
ارسال‌ها
پاسخ
Di Di آفلاین
مدير بخش هك و كرك
*****

ارسال‌ها: 2,358
موضوع‌ها: 116
تاریخ عضویت: اسفند ۱۳۸۵

تشکرها : 1816
( 4046 تشکر در 1321 ارسال )
ارسال: #2
RE: نحوه انتقال DLL پایگاه داده Sqlite
نقل قول: فقط وقتی برنامه Setup ای که روی سیستم خودم نصبکرده بودم را روی سیستم کابر نهایی هم نصب کنم مشکل حل میشه
اين نشان دهنده اين هست كه فايل شما به درستي رجيستر نشده، احتمال داره به جز اين فايل يك فايل ديگه هم مورد نياز

هست كه با نصب كامل پكيج اون هم نصب مي شه و يا ممكنه مشكل مربوط به رجيستر نبودن فايل Dll باشه كه در اين صورت

خودتون هم مي تونيد اون رو دستي رجيستر كنيد. در قسمت Run‌ ويندوز با استفاده از Regsvr32 اون رو رجيسترش كنيد.

گاهي اوقات هم مشكل مربوط به ويندوز هاي 32 و 64 بيتي هست كه بايد يا كامپوننت مخصوص اون ويندوز رو نصب كنيد

يا اينكه در ويندوز7 64 بتي بايد در فولدرهاي ديگه اي اون فايل رو كپي كنيد.

۰۹-مهر-۱۳۹۱, ۱۶:۲۵:۱۴
وب سایت ارسال‌ها
پاسخ
babyy آفلاین
بازنشسته
*****

ارسال‌ها: 3,095
موضوع‌ها: 141
تاریخ عضویت: مرداد ۱۳۸۷

تشکرها : 35081
( 26090 تشکر در 9068 ارسال )
ارسال: #3
RE: نحوه انتقال DLL پایگاه داده Sqlite
مهندس من با vb.net با همین sqlite یه پروژه نوشته بودم

واسه انتقالش از برنامه ستاپ ساختم ؛ بدون هیچ مشکلی توی ویندوز ۷ و xp نصب شد

تا اونجا هم که یادمه فایل System.Data.Sqlite.dll تنها نبود !

بهترین کار اینه ستاپ بسازی و اینجوری میتونی متوجه بشی دقیقا به چه چیزهایی احتیاج داری
۰۹-مهر-۱۳۹۱, ۱۷:۲۱:۰۹
وب سایت ارسال‌ها
پاسخ
ajlajlajl آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,192
موضوع‌ها: 70
تاریخ عضویت: مهر ۱۳۸۴

تشکرها : 932
( 2618 تشکر در 1020 ارسال )
ارسال: #4
RE: نحوه انتقال DLL پایگاه داده Sqlite
من چند بار از sqlite استفاده کردم. همیشه فقط فایل System.Data.SQLite.dll رو میگذارم کنار فایل اجرایی. فک نکنم مشکل از این باشه

میزان رای دشمن است!
[تصویر:  cff100.png]
۱۰-مهر-۱۳۹۱, ۱۲:۵۸:۳۷
وب سایت ارسال‌ها
پاسخ
acreza آفلاین
تازه وارد

ارسال‌ها: 2
موضوع‌ها: 1
تاریخ عضویت: مهر ۱۳۹۱

تشکرها : 0
( 0 تشکر در 0 ارسال )
ارسال: #5
RE: نحوه انتقال DLL پایگاه داده Sqlite
من به خاطر این از sqlite استفاده کردم که نخواهم چیزی نصب کنم
این Regsvr32 را چطوری باید در برنامه C# استفاده کرد.
چون ما نرم افزاری که ارائه میدهیم به کاربر دیگه خودمان دسترسی به سیستمش نداریم

راستی وقتی Setup میسازم با خود VS2010
خودش رفرانسها را Detect میکنه
من روی همه dll هایی که Detect کرده منجمله system.data.sqlite.dll کلیک میکنم بعد توی پروپرتی اون گزینه register را برابر vsdraCOM میکنم خدش پیشفرض : vsdraDoNotRegister هستش
ولی بازم رویه سیستم دیگه میبرم نمیشه . این پروژه در مرحله اول یکصد هزار تا نسخه ازش کپی میشه
دیگه واقعا نمی دانم جیکار کنم .

یک گزینه دیگه هم داره : vsdraCOMRelativePath نکنه باید این باشه !!!
(آخرین ویرایش در این ارسال: ۱۰-مهر-۱۳۹۱, ۱۴:۰۶:۴۳، توسط acreza.)
۱۰-مهر-۱۳۹۱, ۱۳:۴۶:۲۲
ارسال‌ها
پاسخ
f.beigirad آفلاین
تازه وارد

ارسال‌ها: 1
موضوع‌ها: 0
تاریخ عضویت: آبان ۱۳۹۱

تشکرها : 0
( 0 تشکر در 0 ارسال )
ارسال: #6
RE: نحوه انتقال DLL پایگاه داده Sqlite
بخدا من رو هفتس با این مشکل ......مواجهم.
راه حلیم واسش نیس

جون هرکی دوس داری کمک کن.


فایل dllبرا دات نت 3.5 رو از sqlite.orgدان میکنم و میارمش تو رفرنسام،
تو پروپرتیش میگه Runtame :2

برا دات نت 4 نصب میکنم و پروژمم دات نت 4 میسازم.اخطار میده.
:X(: :X(: :X(: :X(: :X(: :X(: :X(:
۰۴-آبان-۱۳۹۱, ۲۳:۳۲:۱۰
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Question [سوال] انواع پايگاه داده _Lotus_ 1 3,406 ۱۴-بهمن-۱۳۹۸, ۱۲:۴۳:۴۶
آخرین ارسال: lord_viper
  سوال : چگونگی محافظت از بانک اطلاعاتی sqlite c0mmander 11 8,254 ۱۷-شهریور-۱۳۹۶, ۲۲:۲۰:۵۹
آخرین ارسال: رها96
  مفاهیم پایه ای پایگاه داده hartan 1 3,893 ۱۳-اردیبهشت-۱۳۹۵, ۱۴:۰۲:۴۷
آخرین ارسال: hartan
  SQLite _Lotus_ 2 2,891 ۰۳-مرداد-۱۳۹۴, ۰۷:۵۹:۳۷
آخرین ارسال: _Lotus_
  [سوال] درخواست مقاله پایگاه داده sedi67 0 2,367 ۰۳-آبان-۱۳۹۳, ۰۱:۲۷:۳۴
آخرین ارسال: sedi67
  انتقال اطلاعات از فاکس پروه به sql server Ghoghnus 1 2,673 ۱۹-اردیبهشت-۱۳۹۳, ۲۳:۳۴:۳۹
آخرین ارسال: babyy
  پایگاه داده ها hanieyh 1 2,943 ۲۳-مهر-۱۳۹۱, ۱۲:۵۳:۳۲
آخرین ارسال: Di Di
  [سوال] طراحی نرم افزار مبتنی بر داده با sql server 2008 و سی شارپ kimia 7 10,540 ۲۴-خرداد-۱۳۹۱, ۰۶:۴۴:۳۸
آخرین ارسال: kimia
  قفل گذاری در پایگاه داده ها nmm 0 4,142 ۲۳-آذر-۱۳۹۰, ۰۰:۱۵:۳۶
آخرین ارسال: nmm
  سوال در مورد كپي اطلاعات بين دو پايگاه داده shedayat 1 3,867 ۱۷-اردیبهشت-۱۳۸۹, ۲۲:۳۴:۴۸
آخرین ارسال: Vb_Net

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS