PDA

View Full Version : تغییر فایل اجرایی در زمان اجرا



shahram197070
سه شنبه 12 تیر 1386, 18:36 عصر
با سلام
دوستان من یک برنامه نوشتم که دائم به روز رسانی می شه . (لازم هستش که کلاینتها هم از ویرایش جدید برنامه استفاده کنند)
زمانی که فقط admin برنامه رو اجرا می کنه خود برنامه version رو درون بانک اطلاعاتی ثبت می کنه و کلاینتها که به بانک اطلاعاتی وصل می شن ویرایش برنامه رو از بانک می خونن و در صورت تغییر برنامه رو از یک محل مشخص بردارند

حالا مشکل من اینجاست که چطوری یک برنامه که اجرا شده و درون حافظه است خودش رو حذف کنه و برنامه با ویرایش جدید رو از مسیر مشخصی که درون برنامه هستش برداره و برای استفاده بعده در دسترس کاربر قرار بده .:عصبانی++:

eyes_shut_number1
سه شنبه 12 تیر 1386, 18:42 عصر
مینونه اول اون برنامه جدید رو باز کنه بعد از این که برنامه جدید باز شد اونو پاک کنه
فکر کنم

ghafoori
سه شنبه 12 تیر 1386, 20:53 عصر
دوست عزیز من یک راه دیگر هم به ذهنم می رسد این است که یک برنامه بنویسی که کار اپدیت رو داخل کلایتها انجام بده یعنی برنامه جدید را دانلود بکند برنامه فعلی را از حافظه خارج کند برنامه جدید را اجرا کند

Microsoft.net
سه شنبه 12 تیر 1386, 22:05 عصر
با سلام
دوستان من یک برنامه نوشتم که دائم به روز رسانی می شه . (لازم هستش که کلاینتها هم از ویرایش جدید برنامه استفاده کنند)
زمانی که فقط admin برنامه رو اجرا می کنه خود برنامه version رو درون بانک اطلاعاتی ثبت می کنه و کلاینتها که به بانک اطلاعاتی وصل می شن ویرایش برنامه رو از بانک می خونن و در صورت تغییر برنامه رو از یک محل مشخص بردارند

حالا مشکل من اینجاست که چطوری یک برنامه که اجرا شده و درون حافظه است خودش رو حذف کنه و برنامه با ویرایش جدید رو از مسیر مشخصی که درون برنامه هستش برداره و برای استفاده بعده در دسترس کاربر قرار بده .:عصبانی++:

این چیزی که شما می خواهید تحت عنوان تکنولوژی Click One در 2005 اریه شده با امکانات زیاد که نه تنها کاری که شما میخواهید رو انجام میده بلکه option های زیاد دیگه ای هم به شما میده

eyes_shut_number1
سه شنبه 12 تیر 1386, 22:50 عصر
میشه توضیح بیشتر بدین؟

shahram197070
چهارشنبه 13 تیر 1386, 06:53 صبح
این چیزی که شما می خواهید تحت عنوان تکنولوژی Click One در 2005 اریه شده با امکانات زیاد که نه تنها کاری که شما میخواهید رو انجام میده بلکه option های زیاد دیگه ای هم به شما میده

با سلام
اگر امکان داره بیشتر توضیح بدید .:عصبانی++:

saeed_rezaei
چهارشنبه 13 تیر 1386, 16:34 عصر
clickonce یکی از روشهای نشر برنامه هاست. قبلا از روش windows installer استفاده می شد که البته هنوز هم مورد استفاده قرار می گیره. یکی از ایراداتی که به روش windows installer واره، عدم به روز رسانی هست. سیستم به صورت اتوماتیک نمی تونه برنامه رو به روز کنه واسه همین برای بروز رسانی، ورژن قبلی رو حذف کنید و ورژن جدید رو دوباره نصب.
در clickonce برنامه نویس به سه طریق می تونه برنامش رو نشر بده:
1: از طریق گذاشتن لینکش در یه وب سایت یا به اشتراک گذاری پوشه مربوط به اون توی شبکه محلی
2: از طریق دستگاههای ذخیره سازی جانبی مثل سی دی یا دی وی دی
3: از طریق نصب از طریق شبکه. مثل اولی هست با این تفاوت که برنامه از طریق شبکه نصب می شه در حالی که در روش اول برنامه ابتدا دونلود می شه و بعد نصب.
ساختار clickonce براساس xml هست و دوفایل رو ایجاد می کنه.
an application manifest and a deployment manifest.
اما استراتژیهایی هم وجود داره برای به روز رسانی برای مثال یکی از این استراتژیها، به صورت اعلان به روزرسانی هست
در این روش، برنامه نویس یه آدرس رو برای به روز رسانی برنامه معرفی می کنه. بعدا که برنامه نصب و اجرا شد در هر بار بالا اومدن محتویات فایل application manifest رو بررسی می کنه و چنانچه این فایل شامل update می شد یه اعلان به کاربر می ده و در صورت توافق کاربر اون رو دونلود و در اجرای بعدی برنامه اون رو به روز می کنه.
این چیزهایی که گفتم و خیلی چیزهایی دیگه رو می تونید از سایت زیر به دست بیارید.

http://msdn2.microsoft.com/en-us/library/wh45kb66(VS.80).aspx

eyes_shut_number1
چهارشنبه 13 تیر 1386, 17:13 عصر
ممنون توضیحات خوب بود
ولی هنوز پیاده سازیش رو نفهمیدم
ممنون دوست عزیز

Microsoft.net
چهارشنبه 13 تیر 1386, 18:06 عصر
ممنون توضیحات خوب بود
ولی هنوز پیاده سازیش رو نفهمیدم
ممنون دوست عزیز

تو msdn 2005 جستجو کنی به کرات مثال و توضیح هست

saeed_rezaei
چهارشنبه 13 تیر 1386, 18:17 عصر
برای پیاده سازیش راحترترین راه به اینصورت هست که در solution explorer روی عنوان پروژه تون راست کلیک کنید و گزینه properties رو انتخاب کنید.
در پنجره ای که باز می شه گزینه publish رو انتخاب کنید.
سپس می تونید پارامترها رو تنظیم کنید و یا اینکه از publish wizard استفاده کنید.

eyes_shut_number1
چهارشنبه 13 تیر 1386, 18:44 عصر
ممنون دوست عزیز امتحان میکنم ببینم میتونم اگه مشکلی بود مزاحمتون میشم
بازمممنون

shahram197070
چهارشنبه 13 تیر 1386, 18:47 عصر
آقای saeed_rezaei (http://barnamenevis.org/forum/search.php?do=findthanks&u=30229)
با سلام و تشکر
مشکل حل شد .

kamranKoohi
شنبه 11 خرداد 1387, 11:25 صبح
با سلام :
اگر در solution از دوبرنامه استفاده شده باشد گزینه Publish فعال نیست ، سوال من اینه که در چنین مواقعی چطور میشه که از Click Once استفاده کرد؟

barbodsoft.com
جمعه 02 اردیبهشت 1390, 18:29 عصر
این تاپیک قدیمی هست ولی به نظرم جالب بود. دوستان کسی هست این مسئله رو دقیق و نبتا کامل توضیح بده.