سؤال

أقوم بإنشاء تثبيت باستخدام VS 2003.يحتوي التثبيت على مصنف Excel وقاعدتي بيانات Access.أحتاج إلى فرض تحميل ملفات Access بغض النظر عن تاريخ الإنشاء/التعديل لقواعد البيانات الموجودة على كمبيوتر المستخدم.أستخدم حاليًا ORCA لفرض رقم إصدار على الملفين، ولكنني أرغب في العثور على حل أبسط وأكثر أناقة (التحرير اليدوي لملف .msi ليس شيئًا أراه "أفضل ممارسة".

هل هناك طريقة لإضافة رقم إصدار إلى قواعد البيانات باستخدام Access والذي سيتم استخدامه بعد ذلك في التثبيت؟

هل هناك طريقة أفضل بالنسبة لي للقيام بذلك؟

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

المحلول

@LanceSc

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

الطريقة الصحيحة لحل هذه المشكلة (كما أشار مؤلف السؤال) هي تعيين حقل الإصدار في جدول الملف.

لسوء الحظ، مشاريع الإعداد في Visual Studio محدودة للغاية.يمكنك إنشاء برنامج VBS بسيط من شأنه تعديل السجلات في جدول الملفات (باستخدام SQL) ولكني أقترح النظر في أدوات تأليف الإعداد البديلة بدلاً من ذلك، مثل ويكس, أو InstallShield أو Wise.الـWiX في رأيي هو الأفضل.

نصائح أخرى

نظرًا لأنه يبدو أنه ليس لديك موارد تم إصدارها بشكل صحيح، فهل حاولت تغيير خاصية REINSTALLMODE؟

IIRC، في القيمة الافتراضية لـ 'omus'، إنها علامة 'o' التي تسمح لك بالتثبيت فقط إذا كان لديك إصدار أقدم.يمكنك محاولة تغيير هذا من "o" إلى "e".كن حذرًا من أن هذا سيؤدي إلى استبدال الملفات المفقودة والأقدم وذات الإصدار المتساوي.

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

ابحث في Build Events لمشروعك.قد يكون من الممكن مراجعة إصدارات الملفات أثناء حدث الإنشاء.[فقط لا تقتبس مني ذلك].لست متأكدًا مما إذا كان بإمكانك ذلك أم لا، ولكن هذا هو المكان الذي سأبدأ فيه التحقيق أولاً.

يجب عليك ملء MsiFileHash جدول لهذه الملفاتانظر إلى WiFilVer.vbs الذي يعد جزءًا من Microsoft Platform SDK لمعرفة كيفية القيام بذلك.

اقتراحي الآخر سيكون للنظر في ويكس بدلاً من Visual Studio 2003 لإجراء عمليات التثبيت.يتمتع Visual Studio 2003 بدعم محدود للغاية من MSI وقد ينتهي بك الأمر إلى قضاء الكثير من الوقت في محاربته، بدلاً من الحصول على عمل مفيد.

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