سؤال

انا لدي InstallShield InstallScript MSI المشروع الذي يحتوي على اتصال فليكس نت بدون وحدة دمج مدير البرامج.إصدار هذا المنتج هو 6.0.32.لقد قمت بإنشاء برنامج تثبيت ثانٍ للإصدار 6.1 والذي يحتوي أيضًا على ملف اتصال فليكس نت بدون وحدة دمج مدير البرامج.عندما أقوم بإجراء ترقية رئيسية على نظام يحتوي على الإصدار 6.0.32، أحصل على رسالة في سجل MSI تفيد:

Disallowing installation of component: {FF970098-B748-427B-B946-AA8E1A1F82AD} since the same component with higher versioned keyfile exists

يشير المكون إلى isusweb.dll الملف الموجود في مجلد اتصال FLEXnet.

يبدو أن هذا الفحص يحدث قبل 6.0.32 تتم إزالة المنتج.يستمر التثبيت لإزالة 6.0.32 المنتج الذي يزيل isusweb.dll.أثناء ال 6.1 تحميل هذا isusweb.dll لا يتم إعادته بسبب فحص إصدار المكون.

نجحت الترقية.عندما أحاول تشغيل التطبيق من اختصار فإنه يتحقق من المكونات.منذ isusweb.dll يفتقد MSI محاولات الإصلاح، ثم لا يمكن العثور على MSI ولا يسمح بفتح التطبيق.

هل هناك طريقة ما لجعل وحدة الدمج تقوم بالكتابة فوقها دائمًا؟

نصائح أخرى

لا يتم تثبيت وحدات دمج

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

كنت أفكر في إنشاء MSI فقط لغرض توسيع MSM.ثم قمت بإنشاء برنامج PREREQ أو Suite Installer لتثبيت هذا MSI بصرف النظر عن المنتج الخاص بك MSI.

لقد حصلت بالفعل على إجابتين جيدتين بالفعل، ولكن لمحاولة تجميعهما:

يبدو حقًا وكأنه وحدة دمج عربات التي تجرها الدواب. فيل يقترح إصلاح موضع REP الخاص بك في InstallExecuteSequence للتغلب على الخطأ. كريس يقترح وضع وحدة الدمج المعيبة في الإعداد الخاص بها.أتفق مع كليهما وأعتقد أنه يجب عليك اتباع كلا الاقتراحين:

  • قم بإزالة وحدة الدمج من الإعداد الرئيسي.
  • قم بإنشاء إعداد جديد وأضف وحدة الدمج الخاطئة وتأكد من تسلسل REP الصحيح.

لكي يعمل إصلاح REP، يجب أن يكون مرجع المكون الخاص بك صحيحًا بنسبة 100% - الآن وفي المستقبل.للقضاء على هذا باعتباره مشكلة في إنشاء ملف إعداد منفصل يسمح لك باحتواء وحدة عربات التي تجرها الدواب داخل MSI الخاصة بها.سيساعدك هذا على تجنب إعادة تنشيط الخطأ عن طريق الخطأ أو عن طريق تغيير التصميم في المستقبل - وهذا الأخير غير مرجح على الإطلاق.

كما يقول كريس:لم يتم تسليم وحدة الدمج، بل تم دمجها.قد تكون وحدة الدمج المحدثة متاحة لكل ما أعرفه، ولكن حتى في هذه الحالة فمن الحكمة احتواؤها.خاصة عندما تتعامل مع GAC (ذاكرة التخزين المؤقت للتجميع العمومي).

حلا آخر قمت بتطبيقه عند مواجهته تم تعيين هذا الخطأ لتحديث عمود "الإصدار" من جدول الملفات، في وحدة دمج، باستخدام Orca.اضبط أنه بحد أقصى 65535.65535.655.655.655.655.655.65535، ستجبر هذا الترقية على تثبيت DLL دائما من وحدة الدمج.

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