كيفية إنشاء نظام تثبيت بسيط لـ VB6 على XP/Vista والإصدارات الأحدث؟[مغلق]

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

  •  09-06-2019
  •  | 
  •  

سؤال

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

المضي قدما والإجابة على السؤال العام.

ولكن في حالتي أنا عالق مع بعض القيود الإضافية.البرنامج الذي سيتم تثبيته مكتوب بلغة VB6 (أم هو 5؟) وعدد قليل من الإصدارات السابقة من VB، لذا فهو لا سيتم تحديثه في أي وقت قريب.لديّ عملية تثبيت قيد التشغيل وسيكون لديّ جهاز VM نظيف لألعب به، لذا سأقوم بإجراء حلقة من:قم بتشغيل التثبيت، وابحث عن مكان العطل، وأصلحه، وأضف ذلك إلى برنامج التثبيت، وأعد جهاز VM، وحاول مرة أخرى.إذا كان لدى أي شخص نهج أفضل فأنا منفتح على الاقتراحات.

أنا يجب اجعله يعمل على XP وأود حقًا أن يكون لدي شيء يعمل على الإصدارات الأحدث من Windows أيضًا.

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

المحلول

InnoSetup أو NSIS, ، أيهما يبدو أسهل بالنسبة لك. ISTool هي أداة واجهة المستخدم الرسومية الرائعة لـ InnoSetup والتي تجعل إنشاء البرامج النصية للإعداد أكثر سهولة.

نصائح أخرى

لقد استخدمت InnoSetup منذ عدة سنوات، قبل نظام التشغيل Vista، وكنت سعيدًا جدًا به في ذلك الوقت.لم يكن لدي سوى عدد قليل من الملفات لتثبيتها وأيقونة قائمة ابدأ.لقد عملت بشكل رائع، وكان من السهل تعلمها.

ووكر التبعية يعد مفيدًا جدًا لمعرفة ملف dll المفقود من برنامج التثبيت.بمجرد معرفة ملف dll، يمكنك العثور على وحدة الدمج الموجودة به باستخدام ملف دمج وحدة الباحث.

لقد عملت مع NSIS وتجاوزت بعض التعقيدات البسيطة، وهو نظام رائع.إنه مجاني، ويوفر الكثير من إمكانيات المكونات الإضافية وتمكنت من القيام بكل ما أحتاج إلى القيام به.

يعد إنشاء حزمة إعداد كاملة لأحد البرامج مجالًا بحد ذاته تقريبًا.هناك العديد من العوامل التي يجب وضعها في الاعتبار ولم يعد معظمنا يستخدم نظام التشغيل Windows 95 بعد الآن.العالم ليس بهذه البساطة كما كان من قبل.

هناك الكثير من الأشياء التي تحتاج إلى معالجة، وبعض مشكلات "الإعداد" هذه تعني تغيير البرنامج أيضًا.على سبيل المثال، مفهوم "المجلدات المحمية" الذي بدا جديدًا بالنسبة للأشخاص عندما ظهر نظام Vista UAC على الساحة.أعتقد أنهم كانوا جميعا يعملون كمسؤول أو شيء من هذا؟ويعني ذلك في أبسط صوره أنك لن تضع ملفات قابلة للكتابة بجوار ملف EXE في البرامج (المعروفة أيضًا باسم "ملفات البرنامج") بعد الآن.

هناك عامل آخر وهو أن طريقة استخدام السجل قد تغيرت.أنا لا أتحدث عن المحاكاة الافتراضية للتسجيل، على الرغم من أن هذا جزء منها أيضًا.ولكن يمكن إجراء تسجيل COM لكل جهاز ولكل مستخدم، وحتى إيقاف تشغيل UAC يمكن أن يؤدي إلى إفساد هذا الأمر.يرى تسجيلات COM لكل مستخدم والعمليات المرتفعة باستخدام UAC على نظام التشغيل Windows Vista SP1.والنتيجة هي أن حزمة الإعداد لا ينبغي أن تقوم بتشغيل regsvr32 (أو الاتصال بنقطة إدخال التسجيل الذاتي لمكتبة COM).انظر "الملاحظات" في جدول التسجيل الذاتي.


مثبت ويندوز هو ال طريقة للمضي قدمًا في معظم الحالات.يمتلك مبرمجو VB6 الإصدار 1.1 من Visual Studio Installer 6.0 المتاح للتنزيل المجاني لإنشاء حزم MSI.راجع "خوادم COM" في مقالة VFP استخدام Microsoft Visual Studio Installer لتوزيع تطبيقات Visual FoxPro 6.0 للحصول على بعض المعلومات القيمة.

هذا ليس الخيار الأسهل ولكن يوجد معالج إعداد VB في VSI 1.1 للمساعدة في الحصول على الأساسيات بشكل صحيح.يجب القيام بأشياء متقدمة مثل إنشاء مجلد فرعي [CommonAppData] وتعيين حقوق الجميع عليه في خطوة ما بعد الإنشاء خارج IDE.هذا هو المكان الذي يمكن أن تكون فيه أدوات الطرف الثالث مفيدة لتمنحك مزيدًا من التحكم دون اللجوء إلى Orca أو البرامج النصية لمثبت ما بعد الإنشاء.

يحاول هؤلاء الأشخاص الذين يصنعون أدوات التثبيت "القديمة" المكتوبة مواكبة ذلك، لكن البرمجة النصية تصبح أكثر تعقيدًا.النتائج في بعض الأحيان غير واضحة.يقدم Windows 7 بعض التجاعيد الجديدة الخاصة به.

على الرغم من أن ClickOnce ليس الخيار الأفضل حقًا لـ VB6، فلا شيء يقول أنه لا يمكنك استخدام COM الخالي من التسجيل لتثبيتات XCopy للعديد من البرامج.يمكن أن يكون COM الخالي من التسجيل خيارًا جيدًا للاستخدام في حزمة المثبت لهذه المسألة.


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

يرى جعل بياني أو أدوات بديلة لتغليف COM بدون تسجيل.

يتطلب ذلك أن تعمل الأنظمة المستهدفة بنظام XP (ويفضل SP2) أو إصدار أحدث.الخلل الوحيد المحتمل هنا هو أن XP لم يتضمن أوقات تشغيل VB6 SP6 حتى XP SP3، لذلك ستحتاج إلى اختبار برنامجك مقابل أوقات تشغيل VB6 SP5 أولاً.حسنًا، هناك خلل آخر:لا يمكنك استخدام ActiveX EXEs بهذه الطريقة، فهي لا تزال تتطلب التسجيل.

نصيحتي هي هذه.حاول أن تجعل برنامج التثبيت بسيطًا قدر الإمكان.يعد Windows Installer برنامجًا معقدًا للغاية، وعندما لا تعمل الأمور بشكل صحيح، قد يكون من الصعب معرفة ما يحدث.أنا متأكد من أننا جميعًا شهدنا الحلقة التي لا نهاية لها من Windows Installer التي تحاول إصلاح ملف لم يعد لديك ملف .msi المصدر له.

يشبه استخدام Windows Installer في أغلب الأحيان استخدام مطرقة ثقيلة لكسر الجوز.

أستخدم InnoSetup لأغراضي الخاصة وأستخدم InstallShield في العمل (رغمًا عني).ابدأ باستخدام برنامج تثبيت بسيط يعتمد على البرنامج النصي واستخدم Windows Installer فقط إذا كان لديك سبب وجيه لذلك.

لاحظ أن دعم تثبيت التجميعات على GAC قد يكون مفقودًا لبعض أدوات إعداد Windows Installer (مثل InnoSetup).

أنا مستخدم إلى الحب إعداد Inno.التركيز على "اعتدت على".

عندما تقوم بتشغيل مثبت الملف الفردي (ما تفعله عادةً)، فإنه يقوم بفك برنامج الإعداد الحقيقي في مجلد ضمن المجلد المؤقت ثم يحاول تنفيذه.المشكلة هي...بعض برامج مكافحة الفيروسات لا تسمح بذلك.

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

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

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