سؤال

متى يجب تغيير أو عدم تغيير عنصر GUID في WIX? Microsoft SDK المعلومات مربكة.

Glytzhkof تحرير:لتوضيح السؤال عندما يتعامل مع عنصر GUID ينبغي تغييرها من أجل MSI المكون.مكون يمكن أن تتغير مع الجوانب مثل:تغير مسار الوجهة أو إضافة أو إزالة الملفات إلى/من نفس العنصر ، إضافة بيانات التسجيل الخ...هذا يسبب مشاكل فيما يتعلق بما يسمى عنصر الرجوع ، ه أفضل الممارسات لإنشاء المكونات في MSI.

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

المحلول

المفهوم الشامل MSI هو أن هناك 1:1 رسم الخرائط بين a عنصر GUID (المعرف الفريد) ، المسار المطلق (تثبيت موقع / مسار مفتاح).المسار الكامل ، بما في ذلك اسم الملف إذا أي.راجع تحديث أدناه جديد Wix ميزة للتعامل سحرية لصناعة السيارات مع هذا.

أنا استخدم بعض قواعد بسيطة للتعامل مع معقدة و لا معنى لها مكون القواعد:

  • دائما استخدام عنصر مستقل لكل ملف (حتى غير الثنائيات).هذا يتجنب جميع أنواع المشاكل.هناك بعض الاستثناءات:
    • متعدد الملف .صافي الجمعيات ينبغي أن يكون في عنصر واحد لأنها يجب دائما تثبيت / إلغاء تثبيت كوحدة واحدة.
    • بضع الأخرى ، العامة أنواع الملفات تأتي في "مطابقة أزواج" - أنها تنتمي معا.غالبا ما تكون هذه هي المحتوى و فهرسة الملفات.وكمثال على النظر في تعليمات Microsoft الملفات:
      • .HLP و .CNT الملفات تنتمي معا.
      • .آلية غرفة تبادل المعلومات،.تشي الملفات تنتمي معا.
    • هناك عدة أنواع الملفات التي تنتمي معا وبالتالي يجب وضعها في نفس العنصر بحيث تثبيت/إلغاء التثبيت معا - وأظن معينة شهادة ملفات المرشحين.فمن الصعب أن تأتي مع قائمة محددة.ببساطة اسأل نفسك "هل هذه الملفات دائما تنتمي معا" - حتى تظهر دائما في أزواج كلما كان هناك نسخة جديدة ؟ إذا كان الجواب نعم, ثم تثبيتها عن طريق نفس العنصر.تعيين إصدار الملف ، إن وجدت ، كما ملف مفتاح.
    • أريد أن أضيف برنامج تشغيل ملفات كمثال على مجموعة من الملفات دائما ينتمون معا: SampleDriver.cat, SampleDriver.inf, SampleDriver.sys, SampleDriver.cer.يجب أن كل مباراة على أنها "وحدة" للنشر.
  • تذكر أن مرة واحدة كنت قد خصصت GUID عن مكون ، فإنه يتم تعيين في الحجر أن العنصر الرئيسي في المسار (المسار المطلق).إذا قمت بنقل الملف إلى موقع جديد أو إعادة تسمية الملف ، وإعطائها جديدة عنصر GUID (منذ المسار المطلق يختلف الأمر بشكل فعال هوية جديدة).
  • في ملخص عنصر Guid ترتبط مطلقة موقع التثبيت ، وليس إلى ملف معين. GUID لا تتبع الملف حول إذا كان يتحرك.GUID الإشارة التهم مطلقة موقع الملف في حد ذاته.
  • لا إضافة أو إزالة الملفات من القائمة عنصر.جميع أنواع الترقية و الترقيع نتيجة المشاكل.هذا هو السبب في أنني أحب ملف واحد لكل عنصر كقاعدة عامة.
  • هناك الكثير من المكون الرجوع ، ولكن سوف أترك الأمر في ذلك على "نظرة عامة".

بعض العينات:

  • إعادة تسمية الملف C:\Program Files\MyCompany\MyApp\MyFile.exe إلى C:\Program Files\MyCompany\MyApp\MyFile_NEW.exe.ماذا يعني هذا بالنسبة عنصر الخلق ؟ هذا هو المطلق مسار التثبيت, لذلك يمكنك إنشاء GUID جديد على استضافة عنصر أو إضافة عنصر جديد و حذف القديم (الذي له نفس التأثير).
  • تحديث الخاص بك MSI يسلم نسخة جديدة من MyFile.exe.الموقع هو نفسه كما كان من قبل ، وهذا يعني أن عنصر GUID يجب تغييره.هو نفس الملف (الهوية) في نسخة مختلفة.

التحديث:WIX الآن جديد السيارات توليد عنصر GUID الميزة التي يحسب GUID طالما المسار الهدف يبقى نفسه.لم أحاول هذا إلى أن تكون صادقة ، ولكن يبدو أن العديد من استخدامه دون مشاكل ، روب Mensching (Wix المؤلف) الدول أنها آمنة للاستخدام العادي.كمفهوم أنا أوصي هذا لأنه يضم بعض السيارات-السحر والدروع من بعض التعقيد.

نلاحظ أيضا أن يمكنك ترك الكثير من سمات المصدر من Wix ملف xml والاعتماد على Wix التخلف بدلا من الثابت ترميز القيم.

نصائح أخرى

أنت لا تتغير أبدا المكون/@Guid.أنت أيضا لا تغيير مجموعة من الموارد (الملفات ، RegistryKey, اختصار, عناصر, الخ.) في المكون.عندما يكون لديك مورد جديد ، يجب إنشاء عنصر جديد مع جديد @Guid.الجزء صعبة حقا هو أن عنصر جديد يمكن أن يكون أي تداخل (أعتقد مسار الملف أو مسار مفتاح التسجيل أو typelib.... الخ) مع القديم المكون.

هذه هي الأساس المكون القواعد ، تحقق: http://robmensching.com/blog/posts/2003/10/18/Component-Rules-101.

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

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