سؤال

هل من الممكن تقديم وظيفة ClickOnce إلى تطبيق موجود؟

السيناريو هو:الإصدار 1.0 مثبت بالفعل في مقر العميل.أود أن أرسل إليهم حزمة إعداد جديدة سيتم ترقيتها إلى الإصدار 1.1، والتي تحتوي على وظيفة ClickOnce، مما يجعل الترقيات المستقبلية "سهلة".

باستثناء ذلك، هل هناك أي حلول أخرى لهذا النوع من المشاكل؟

ملاحظة.:تم تطوير التطبيق الأصلي باستخدام فيجوال ستوديو 2005 (أي .NET 2.0).أنا استخدم فيجوال ستوديو 2008 الآن.

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

المحلول

لا، هذا غير ممكن مع سيناريو نشر ClickOnce القياسي.

ClickOnce عبارة عن تثبيت في وضع الحماية من جانب العميل.ولن يعرف عن الإصدار 1.0 المثبت بالفعل.انها ببساطة سوف تحقق لمعرفة ما إذا كان GUID تم تثبيته بالفعل عبر ClickOnce، وإذا كان الأمر كذلك، فقم بتحديثه، ولكن فقط إذا تم نشر الإصدار السابق عبر ClickOnce.

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

لا تفكر في ClickOnce كشيء "تتضمنه"، فكر فيه كطريقة للنشر.

بدلاً عن ذلك:

يجب أن أوضح أن ما تبحث عنه غير ممكن من خلال النشر القياسي لـ ClickOnce.ومع ذلك، ذكرت أنك سترسل إليهم ملف إعداد أولي.في هذه الحالة قد يكون لديك حل بديل ممكن:

  1. قم بكتابة ملف الإعداد لإزالة تثبيت الإصدار 1.0 تلقائيًا
  2. قم بكتابة ملف الإعداد لبدء تثبيت ClickOnce.

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

نصائح أخرى

تأكد لاختبار ClickOnce النشر الخاص بك بدقة جدا في بيئة العميل الخاص بك. أنا إهمال التفاصيل هنا، ولكن هناك العديد من المشاكل مع ClickOnce. لقد تم دعم تطبيق ClickOnce لمدة 3.5 سنوات حتى الآن، وقد واجهت العديد من المشاكل مع كشوف، الحاجة إلى يدويا حذف المجلدات التخزين رمل حتى التحديثات تثبيت بشكل صحيح، وما إلى ذلك - إذا كنت تبحث على الانترنت لمشاكل ClickOnce ستجد جدا عدد قليل من القضايا في المحافل MSDN وأماكن أخرى، وكثير منها MS لا يبدو يريدون حل لأنها قد تم فتح منذ البصرية ستوديو 2005.

وبالإضافة إلى ذلك، يكون على بينة من مسكتك المحتملين في ClickOnce قبل الصافي 3.5 SP1. إذا لم يكن لديك شهادة نشر البرامج الخاصة بك من CA ومعترف بها من قبل الأجهزة العميلة والبصرية يستخدم استوديو شهادة "مؤقتة" (* .PFX) التي تنتهي عام واحد من الخلق. بعد ذلك الوقت، سوف إصدارات التحديث اللاحقة ربما لا يتم تثبيت، وسوف تظهر للمستخدمين رسائل مخيفة عن انتهاء الشهادة. ثابت Microsoft هذا في .NET Framework 3.5 SP1، ولكن عليك أن حفر من خلال ملاحظات الإصدار للعثور على التعليقات التي شهادات مؤقتة أو دائمة لم تعد مطلوبة. لذلك - إذا لم يكن لديك شهادة CA العامة، وعليك أن تكون دعم هذا التطبيق لبعض الوقت، ثم تأكد من أنك على .NET Framework 3.5 SP1

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

وكل إصدار محدث زيادات إصدار التجميع حسب الحاجة.

وبناء يحتوي على خطوة مخصصة لصناعة السيارات في إنشاء ملف مع إصدار التجميع الجديد.

ونسخ مشروع نشر ملف نسخة إلى دليل الإخراج مع MSI.

وفي كل مرة يتم تشغيل التطبيق مثبتا، فإنه يقارن نسختها الخاصة إلى الإصدار في إصدار الملف في المجلد نشر. إذا كانت تختلف، إنهاء التطبيق وإطلاق MSI، والتي وضعناها لإزالة الإصدارات القديمة التطبيق تلقائيا.

وهذا هو "ClickOnce الرجل الفقير" للبيئة حيث لا توجد أدوات نشر التطبيق على الإطلاق AVL (ولا حتى AD تطبيق الإعلان) لذلك نحن اكتفى. مرة أخرى، فإن هذا النهج قد لا تكون متطورة بما يكفي بالنسبة لك، ولكنه يعمل بشكل جيد بالنسبة لنا.

وحظا سعيدا.

أفضل طريقة أعرفها هي أن أرسل لهم برنامج تثبيت:

  1. إلغاء تثبيت الإصدار الحالي
  2. يقوم بتشغيل تطبيق ClickOnce الموجود على الويب.

وبهذا، ستكون لديك تجربة ترقية معقولة، ومن هناك، يمكن لـ ClickOnce التعامل مع الترقيات من تلقاء نفسها.

وأعتقد أنه في هذه الحالة "أسهل" الحل سيكون لمجرد استخدام ClickOnce النشر للحصول على الإصدار 1.1 وكجزء من هذا الإصدار الجديد من التطبيق الخاص بك لديك ملف التكوين الافتراضي مع العلم الجولة الأولى من نوع أن ، عندما يحصل على تشغيل أول مرة من قبل المستخدم، ويرى أن العلم تعرض للمرة الأولى، فإنه يبحث عن الإصدار السابق، ونسخ على أي إعدادات التكوين الحالي، ومن ثم إلغاء تثبيت الإصدار السابق تلقائيا.

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

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