التحديث التلقائي لتطبيقات .NET [نسخة مكررة]

StackOverflow https://stackoverflow.com/questions/819647

  •  03-07-2019
  •  | 
  •  

سؤال

هذا السؤال لديه بالفعل إجابة هنا:

نحن بصدد تطوير نظام معقد حقًا يتكون من العديد من خدمات WCF وتطبيقات ASP.NET MVC وأدوات الإدارة (تطبيقات Windows Forms)...سيكون لدى بعض هؤلاء مثيلات تعمل على عدة خوادم.نحن نبحث عن حل جيد للتحديث التلقائي لمثل هذا النظام.على الأرجح، سنحتاج إلى تطبيق (خدمة) تحديث تلقائي منفصل يقوم بهذه المهمة، أو بعض تطبيقات الإدارة المركزية التي ستعرف إصدارات جميع المثيلات المثبتة وتقوم بالتحديث عن بعد.هل هناك أي منتج/مكتبة جيدة مصممة لهذا الغرض تعرف عنها أو لديك خبرة بها؟

هل كانت مفيدة؟

المحلول

أنا شخصياً أستخدم منهجية بسيطة جدًا لأي نوع من التحديث التلقائي:

  • لديك المثبت
  • تحقق من الإصدار الجديد (WebClient البسيط وقارن الأرقام مع إصدار التجميع الحالي الخاص بك)
  • إذا كان الإصدار أعلى، فقم بتنزيل أحدث برنامج تثبيت (يجب أن يكون عبر SSL لأسباب أمنية)
  • قم بتشغيل برنامج التثبيت الذي تم تنزيله وأغلق التطبيق.(في هذه المرحلة، يجب أن تتمتع بامتيازات المسؤول إذا طلب منك برنامج التثبيت أن تكون مسؤولاً)

يجب أن يعتني المثبت بالباقي.بهذه الطريقة، سيكون لديك دائمًا الإصدار الأحدث وبرنامج التثبيت بأحدث إصدار.

نصائح أخرى

اسمحوا لي أن أبدأ بالقول إنني مؤسس الشركة التي لديها حل تحديث كامل يتضمن:

يعالج wyUpdate جميع مشكلات Windows Vista/Windows 7 UAC وجميع مشكلات أذونات الملفات التي تظهر حتمًا عندما تحاول تحديث البرامج المعقدة.

نحن نقدم أيضا تراخيص مجانية لـ wyBuild للمشاريع مفتوحة المصدر, ، ولكن إذا كنت تتطلع فقط إلى إنشاء أداة التحديث الخاصة بك، فيمكنك تفكيك كود المصدر الخاص بنا بحرية.

ومع ذلك، إذا كنت تريد إنشاء برنامج التحديث الخاص بك، فإليك بعض النصائح:

بناء المحدث الخاص بك

مكان جيد للبدء هو wyUpdate و التحديث التلقائي كود المصدر الذي ذكرته أعلاه.يمكنك تفكيكها واستخدامها لأغراضك الخاصة.بعض الخوارزميات التي يحتوي عليها:

  • دعم كامل لنظام التشغيل Windows Vista / Windows 7 UAC
  • قدرة المستخدمين المحدودين على التحقق ثم التحديث إذا كانت لديهم بيانات اعتماد
  • دعم inernet الشركات متزعزع.(إذا كنت قد عملت من قبل مع شركة، فهذه مشكلة حقيقية).
  • سرعة استخراج الملفات وتصحيحها وتثبيتها.
  • دعم التسجيل.
  • استرجاع الملفات والتسجيل في حالة حدوث خطأ أو إلغاء من قبل المستخدم
  • التحديث الذاتي (لا توجد ملفات متبقية)

لدينا أيضا مواصفات الملف هنا.

التحديث التلقائي

نظرًا لأن كونك تلقائيًا هو أحد المتطلبات، دعني أخبرك كيف نفعل ذلك من خلال التحكم التلقائي في التحديث.

نحن نستخدم الأنابيب المسماة للتواصل بين المُحدِّث المستقل (wyUpdate) وعنصر تحكم المُحدِّث التلقائي الموجود في نموذج البرنامج الخاص بك.يقوم wyUpdate بإبلاغ التقدم إلى برنامج التحديث التلقائي، ويمكن أن يخبر برنامج التحديث التلقائي wyUpdate بإلغاء التقدم، وبدء التنزيل، وبدء الاستخراج، وما إلى ذلك.

يؤدي هذا إلى إبقاء المُحدِّث منفصلاً عن تطبيقك.

في الواقع، تم تضمين رمز C# المحدد للأنابيب الذي نستخدمه في مقال كتبته منذ فترة قصيرة: تطبيق C# متعدد العمليات مثل Google Chrome.

إليك حل مفتوح المصدر كتبته لتلبية الاحتياجات المحددة لدينا لتطبيقات WinForms وWPF.الفكرة العامة هي الحصول على أكبر قدر من المرونة، بأقل قدر ممكن من الحمل.

لذا، اندماج سهل للغاية، والمكتبة تفعل كل شيء تقريبًا من أجلك، بما في ذلك عمليات المزامنة.بل هو أيضا مرنة للغاية, ، ويتيح لك تحديد المهام التي يجب تنفيذها وبأي شروط - يمكنك وضع القواعد (أو استخدام بعض القواعد الموجودة بالفعل).وأخيرًا وليس آخرًا هو دعم أي مصدر التحديثات (الويب، بيتورنت، الخ) وأي تنسيق التغذية - كل ما لم يتم تنفيذه يمكنك فقط أن تكتبه لنفسك.

يتم أيضًا دعم التحديثات الباردة (التي تتطلب إعادة تشغيل التطبيق)، ويتم إجراؤها تلقائيًا ما لم يتم تحديد "التبديل السريع" للمهمة.

تم اختصار هذا إلى ملف DLL واحد، بحجم أقل من 70 كيلو بايت.

مزيد من التفاصيل في http://www.code972.com/blog/2010/08/nappupdate-application-auto-update-framework-for-dotnet/

الكود موجود عند http://github.com/synhershko/NAppUpdate (مرخص بموجب ترخيص Apache 2.0)

أخطط لتمديده أكثر عندما أحصل على المزيد من الوقت، ولكن بصراحة يجب أن تكون قادرًا على تحسينه بنفسك بسرعة لأي شيء لا يدعمه حاليًا.

يجب أن يكون التحديث التلقائي لخدمات WCF ومواقع ASP.NET ممكنًا أيضًا باستخدامه، باستخدام "التبديل السريع" للملفات ومهمة "iisreset" عند الضرورة.

انقر مرة واحدة للحصول على أدوات الإدارة الخاصة بك.

لقد بحثنا في عدد قليل من الخيارات وقررنا استخدام تحديث تطبيق الحياة مكتبة لمشروعنا Enterprise.

يمكن لـ AppLife Update إضافة وظيفة التحديث التلقائي لتطبيقات .NET الخاصة بك بسرعة وسهولة، ولكنه يتميز أيضًا بالمرونة نظرًا لواجهة برمجة التطبيقات (API) الشاملة الخاصة به.

اطلع على القائمة الكاملة للميزات وبعض مقاطع الفيديو التجريبية على موقعه على الويب.

بالنسبة لتطبيقات WPF البسيطة، تلك التي ربما تستخدم تثبيت Xcopy، يمكنك استخدامها وحدة AppUpdater هذه.إنها وحدة مصدر واحدة، مجرد بضعة أسطر من التعليمات البرمجية، لإضافة إمكانية التحديث إلى تطبيق WPF بسيط.

انه مجانا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top