سؤال

لدينا حاليا 4 التركيب لدينا برنامج العميل:

  • ClientSetupTest
  • ClientSetupProduction
  • ClientUpdateTest
  • ClientUpdateProduction

فقط الاختلافات بينهما هي أن الإعداد يحتوي على تقارير Crystal الملفات القابلة لإعادة التوزيع و التحديث لا.اختبار وإنتاج فقط يحدد البيئة التي تعمل في و الفرق الوحيد أن هناك خط واحد في العميل.exe.ملف التكوين.

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

"ملف" سمة جديدة إلى ملف التكوين مع هذا الجديد المثبت.المشكلة أنا أنه إذا قمنا بتعديل العميل.exe.ملف التكوين على التثبيت ، قم بتشغيل المثبت جديد ، config لم يحصل على تحديث مع "ملف" السمة.

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

تحرير:إعادة تسمية قديمة config إلى العميل.exe.config.القديمة قبل استدعاء القاعدة.OnBeforeInstall() لم تنجح.بل إعادة تسمية الملف ولكن لم اكتب واحدة جديدة.

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

المحلول

Windows Installer لن تحديث تعديل الملف.

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

لديك بعض الخيارات:

  • تشمل إجراء مخصص بتعديل الملف في المكان.قد يكون هذا السيناريو أو .صافي رمز.

  • لا كما تقول - نقل الملف الموجود للخروج من الطريق.المثبت لن تتوقف على ذلك.ولكن كنت بحاجة للتأكد من أنه يحدث في النظام كنت أتخيل.قد تحتاج Orca لمعرفة الطلب.

  • وتشمل مخصص الخيار لتعيين تاريخ إنشاء أن يكون "اليوم".هذا ينبغي أن يكون حقا بسيطة مع كتابتها إجراء مخصص باستخدام البرمجة النصية.FileSystemObject.ثم Windows installer سيتم الكتابة فوقه.

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