استفاده از کامپوننت 64 بیتی و 32 بیتی به طور همزمان
با سلام
من از دیتابیس sqlite برای برنامم استفاده می کنم الان مجبور همیشه دو نسخه از برنامه ارائه کنم یکی برای 32 بیت و یکی برای 64 بیت
آیا راه حلی هست که بشه دو تا کامپوننت ارائه شده برای 32 و 64 را در یک نرم افزار به کار برد ؟
تو این سایت stackoverflow فکر کنم جواب دادن ولی انگلیسی بود زیاد متوجه نشدم
https://stackoverflow.com/questions/7264383/....
نقل قول: استفاده از کامپوننت 64 بیتی و 32 بیتی به طور همزمان
سلام
ببینید اگر فقط نسخه 32 بییتی sqlite را به پروژه اضافه کردید باشید باید platform را روی x86 تنظیم کنید.در این صورت پروژه شما هم روی سیستم های 32بیتی اجرا میشه هم 64 بیتی
ولی اگر میخواید برای هر سیستم از نسخه مخصوص خود sqlite استفاده کنید، وقتی از طریق nuget اقدام به نصب و اضافه کردن sqlite به پروژه میکنید هر دو کتابخانه(64 و 32 بیتی) به پروژه اضافه میشه و باید platform را روی Anycpu تنظیم کنید
موفق باشید
نقل قول: استفاده از کامپوننت 64 بیتی و 32 بیتی به طور همزمان
سلام، من قبلا انجام دادم، خیلی ساده است.
اول کتابخانه ای که میخواید از دو نسخه 32 و 64 بیتی اون استفاده کنید رو از پروژه حذف کنید.
1. یه پوشه توی جایی که فایل sln وجود داره به نام libs ایجاد کنید.
2. درون این پوشه، دو پوشه به اسم های x86 و x64 ایجاد کنید.
3. نسخه 64 بیتی کتابخانه رو بریزید داخل پوشه x64 و نسخه 32 بیتی رو بریزید توی پوشه x86.
http://s9.picofile.com/file/8336677042/s1.PNG
4. حالا یکی از این نسخه ها رو از طریق add reference به پروژه اضافه کنید.(فرق نداره کدوم باشه، چون ویرایشش قراره بکنیم.)
5. حالا روی پروژه ـتون راست کلیک کنید و گزینه Unload Project رو انتخاب کنید تا پروژه شما رو Unload کنید.
6. بعد از اینکار، روی پروژه راست کلیک کنید و گزینه Edit WindowsFormsApp5.csproj رو انتخاب کنید.(چون نام پروژه من WindowsFormsApp5 بود، این گزینه برای من به این صورت است، برای شما ادیت + نام پروژه اتون خواهد بود)
7. بعد از باز شدن xml های پروژه، بگردید دنبال کتابخانه ای که اضافه کردید. مثلا من نسخه 32 بیتی کتابخانه xyz.dll رو اضافه کرده بودم).
همانطور که مشاهده میکنید، کتابخانه باید به این صورت باشه، فقط اگه x64 رو اضافه کرده باشید، جای x86 که در تصویر زیر هست، x64 خواهید دید.
http://s8.picofile.com/file/8336677900/s2.PNG
8. جای x86 یا x64 در تصویر بالا، کلمه $(PlatformTarget) رو بنویسید(علامت دلار باید اول قرار بگیره!)
http://s8.picofile.com/file/8336678268/s3.PNG
حالا این فایل رو ذخیره کنید و بعد ببندید. سپس روی پروژه خود راست کلیک کنید و گزینه Reload Project رو انتخاب کنید تا پروژه شما باز شود.
از این به بعد هر بار پروژه شما 32 بیتی باشد، کتابخانه 32 بیتی استفاده خواهد شد و هر بار 64 بیتی باشد، کتابخانه 64 مورد استفاده قرار میگیرد.
موفق باشید
نقل قول: استفاده از کامپوننت 64 بیتی و 32 بیتی به طور همزمان
نقل قول:
نوشته شده توسط
ramtinak
سلام، من قبلا انجام دادم، خیلی ساده است.
اول کتابخانه ای که میخواید از دو نسخه 32 و 64 بیتی اون استفاده کنید رو از پروژه حذف کنید.
1. یه پوشه توی جایی که فایل sln وجود داره به نام libs ایجاد کنید.
2. درون این پوشه، دو پوشه به اسم های x86 و x64 ایجاد کنید.
3. نسخه 64 بیتی کتابخانه رو بریزید داخل پوشه x64 و نسخه 32 بیتی رو بریزید توی پوشه x86.
http://s9.picofile.com/file/8336677042/s1.PNG
4. حالا یکی از این نسخه ها رو از طریق add reference به پروژه اضافه کنید.(فرق نداره کدوم باشه، چون ویرایشش قراره بکنیم.)
5. حالا روی پروژه ـتون راست کلیک کنید و گزینه Unload Project رو انتخاب کنید تا پروژه شما رو Unload کنید.
6. بعد از اینکار، روی پروژه راست کلیک کنید و گزینه Edit WindowsFormsApp5.csproj رو انتخاب کنید.(چون نام پروژه من WindowsFormsApp5 بود، این گزینه برای من به این صورت است، برای شما ادیت + نام پروژه اتون خواهد بود)
7. بعد از باز شدن xml های پروژه، بگردید دنبال کتابخانه ای که اضافه کردید. مثلا من نسخه 32 بیتی کتابخانه xyz.dll رو اضافه کرده بودم).
همانطور که مشاهده میکنید، کتابخانه باید به این صورت باشه، فقط اگه x64 رو اضافه کرده باشید، جای x86 که در تصویر زیر هست، x64 خواهید دید.
http://s8.picofile.com/file/8336677900/s2.PNG
8. جای x86 یا x64 در تصویر بالا، کلمه $(PlatformTarget) رو بنویسید(علامت دلار باید اول قرار بگیره!)
http://s8.picofile.com/file/8336678268/s3.PNG
حالا این فایل رو ذخیره کنید و بعد ببندید. سپس روی پروژه خود راست کلیک کنید و گزینه Reload Project رو انتخاب کنید تا پروژه شما باز شود.
از این به بعد هر بار پروژه شما 32 بیتی باشد، کتابخانه 32 بیتی استفاده خواهد شد و هر بار 64 بیتی باشد، کتابخانه 64 مورد استفاده قرار میگیرد.
موفق باشید
خیلی متشکر
فقط یک سوال داشتم این راه حل برای وقتی هستی که سورس را به کسی می دهیم یعنی هنگامی که sln را باز می کند
یا هنگامی که فایل exe را به مشتری می دهیم ؟
یعنی اگر فایل exe را هم در ویندوز 64 باز کنیم باز هم تبدیل می شود ؟
نقل قول: استفاده از کامپوننت 64 بیتی و 32 بیتی به طور همزمان
نقل قول:
نوشته شده توسط
windowsyar
خیلی متشکر
فقط یک سوال داشتم این راه حل برای وقتی هستی که سورس را به کسی می دهیم یعنی هنگامی که sln را باز می کند
یا هنگامی که فایل exe را به مشتری می دهیم ؟
یعنی اگر فایل exe را هم در ویندوز 64 باز کنیم باز هم تبدیل می شود ؟
دوست عزیز شما وقتی این عملیاتی که دوستمون اشاره کردن رو انجام بدید در خروجی برنامه هم ذخیره میشوند...تنها در sln ذخیره نمیشه
شما دیباگ یا ریلیز کنین و خروجی رو با فایل های مربوطه در هرویندوزی میتونید اجرا کنید
نقل قول: استفاده از کامپوننت 64 بیتی و 32 بیتی به طور همزمان
نقل قول:
نوشته شده توسط
samiasoft
دوست عزیز شما وقتی این عملیاتی که دوستمون اشاره کردن رو انجام بدید در خروجی برنامه هم ذخیره میشوند...تنها در sln ذخیره نمیشه
شما دیباگ یا ریلیز کنین و خروجی رو با فایل های مربوطه در هرویندوزی میتونید اجرا کنید
بله متوجه شدم
یعنی فایل exe هم در ویندوز 32 بیتی و هم در ویندوز 64 بیتی اجرا می شود
یا این که باز هم باید واسه 32 جداگانه خروجی گرفت برای 64 هم جداگانه