سؤال

لدينا جزء WIX في ملف Somedialog.wxs الذي يطالب المستخدم للحصول على بعض المعلومات. يتم الإشارة إليه في جزء آخر في ملف InstallerUi.wxs يتحكم في ترتيب الحوار. بالطبع ، Product.wxs هو ملفنا الرئيسي. يعمل بشكل رائع.

الآن لدي مشروع Visual Studio 2008 WIX 3.0 لـ .MSI لتطبيق آخر ويحتاج إلى مطالبة المستخدم بنفس المعلومات. لا يمكنني معرفة أفضل طريقة لمشاركة الملف بحيث يؤدي تغيير المعلومات المطلوبة إلى الحصول على السلوك الجديد. MSIS.

بصراحة لا يمكنني معرفة ما إذا كانت وحدة دمج أو .wsi (تضمين) أو .wixlib هي الحل الصحيح. كنت آمل في العثور على مثال بسيط لشخص يقوم بذلك لكنني فشلت حتى الآن.

يحرر:مرتكز على روب مينشينغ Wixlib إدخال المدونة, ، قد يكون Wixlib هو الحل ، لكنني ما زلت أبحث عن مثال على كيفية القيام بذلك.

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

المحلول

أنا سعيد للغاية بخيار .wixlib. استغرق الأمر مني بضع دقائق فقط لأفعله بمجرد أن أفهم ما كان.
لقد فعلت ما يلي: في VS2008 ، Add-> مشروع جديد ... من نوع "Wix Library Project" المسمى SQLDialog. يتم إنشاء ملف Library .wxs مع فارغة <Fragment></Fragment> عنصر. قمت بنسخ عنصر واجهة المستخدم من مربع الحوار الحالي الخاص بي (في "مشروع WIX" الرئيسي) إلى عنصر الشظية:

<Fragment>
  <UI>
    <Dialog Id="SQLServerPromptingDlg" ... Title="SQL Server Information" ...>
      <Control Id="Next" Type="PushButton" ... Text="!(loc.WixUINext)" />
      ...
    </Dialog>
  </UI>
</Fragment>

أضفت مشروع Wixlib إلى تكوين بناء الإصدار في VS2008. لقد قمت بحذف ملف sqldialog.wxs من مشروع WIX الرئيسي وأشارت إلى مشروع SQLDialog Wixlib ، بدلاً من ذلك.
عندما أعيد تجميع الحل ، عمل مشروع WIX الرئيسي كما كان من قبل! حلو!

ثم أشرت إلى مشروع SQLDialog Wixlib من مشروع WIX الآخر واستخدمته من هناك. عملت بشكل رائع! يعد Build Server سعيدًا لأن مشروع .wixLib المشترك هو جزء من الحل الذي يتم تجميعه. لذلك ، لأغراضنا ، أعتقد أن هذا كان أفضل من دليل "مشترك". لا جريمة بوب. أنا أقدر أفكارك.

نصائح أخرى

إذا كان ملفًا واحدًا فقط ، فقد يكون. wixlib مبالغة ، لأنه يتطلب. wixproj آخر لبناءه. ما أقوم به في حالات كهذه هو وضع .wxs في دليل "مشترك" وإضافته إلى مشاريع متعددة باستخدام "إضافة الارتباط" المنسدلة في الأمر "إضافة العنصر الموجود".

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