سؤال

لدي مجموعة من حزم ClickOnce في مجلد نشر على محرك أقراص الشبكة وأحتاج إلى نقلها جميعًا إلى خادم آخر (جهاز DR الخاص بنا).

بعد نسخ/لصق الدليل بأكمله وتشغيل الإعدادات على الجهاز الجديد، تظهر لي رسالة خطأ تفيد بأنه لا يمكن العثور على المسار القديم:

تفعيل ... myclickonceapp.Application أدى إلى استثناء.تم اكتشاف رسائل الفشل التالية:

+ لم ينجح تنزيل الملف://oldMachine/c$/MyClickOnceApp.application.

+ تعذر العثور على جزء من المسار '\\oldMachine\c$\MyClickOnceApp.application'.

بمجرد أن أقوم بتغيير التثبيت عنوان URL للإشارة إلى جهازي الجديد، يظهر لي خطأ آخر:

توقيع XML الظاهر غير صالح.

+ لم يتم التحقق من التوقيع الرقمي للكائن.

لقد حاولت استخدام MageUI.exe, ، لتعديل عنوان URL للنشر، ولكنه يطلب شهادة، وهي ليست لدي.

ما الخطأ الذي أفعله وكيف أنقل حزم ClickOnce المنشورة بنجاح؟

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

المحلول

لقد وجدت الحل:

أولاً، باستخدام MageUI، قمت بتغيير "موقع البدء" ضمن "خيارات النشر".عند الحفظ، دفعني ذلك إلى التوقيع باستخدام المفتاح، الذي قمت بإنشائه هناك وبعد ذلك.ثم قمت بتشغيل setup.exe الملف، وأنه يعمل دون فشل.

بعد التحقق من الملفات التي تم تغييرها، أدركت أنه كان الملف الوحيد:ملف بيان التطبيق (myAppName.application).الأشياء الوحيدة التي تغيرت في الملف هي مزود النشر و ال إمضاء (وهذا ما قمت بتغييره في MageUI).

بمجرد أن أدركت أن هذه هي كيفية القيام بذلك، استخدمت إصدار سطر الأوامر من MageUI المسمى Mage.exe, ، والذي يأتي مع SDK.

يوجد أدناه الملف الدفعي الذي قمت بإنشائه للقيام بكل هذا في سطر الأوامر:

REM ضبط البيئة
استدعاء "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"

REM قم بتحديث عنوان URL لموفر النشر
الساحر -تحديث %1.application -pu %2

REM قم بتوقيع البيان باستخدام مفتاحنا
بركى -تسجيل %1.application -CertFile C:\AppKey.pfx -كلمة المرور myPw

يمكنني الآن استخدام هذا لتشغيل جميع تطبيقاتي المنشورة بطريقة سريعة وسهلة.آمل أن يساعد هذا.

نصائح أخرى

دون الخوض في الكثير من التفاصيل، هذا يجب أن يساعدك على المضي قدمًا.

يجب توقيع بيانات ClickOnce بشهادة لأسباب أمنية.يمكنك شراء شهادة توقيع الرمز أو إنشاء شهادة اختبارية.العيب الرئيسي لشهادة الاختبار هو أن ناشر التطبيق الخاص بك سيظهر باسم "غير معروف" بدلاً من اسم شركتك.

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

يمكنك الآن استخدام MageUI لتحرير بياناتك.في أي وقت تقوم بحفظه فيه، سيطالبك بالتوقيع على البيانات ولكن يجب أن تكون قادرًا الآن على تحديد شهادة الاختبار التي قمت بتخزينها للتو.قم دائمًا بتحرير/توقيع بيان التطبيق قبل تحرير/توقيع بيان النشر.هذا أمر مربك لأن التطبيق واضح ليس كذلك الملف مع .طلب امتداد.

حظ سعيد!

أتوقع أن أقوم بما يلي:

  • انسخ محتويات المجلد الحالي إلى الموقع الجديد
  • لكل تطبيق:-
    • قم بتغيير "مجلد التثبيت" إلى الموقع الجديد
    • نشر كنسخة جديدة
    • قم بتغيير "مجلد النشر" إلى الموقع الجديد
    • نشر كنسخة جديدة

يجب أن تعمل الإعدادات الجديدة التي يتم تشغيلها من المجلد الجديد ويجب تحديث الإعدادات الحالية لتظهر في المكان الصحيح.

كل هذا لم يتم اختباره، لكنني متأكد تمامًا أن هذا ما فعلته سابقًا ...

يحرر:

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

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

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