سؤال

أنا أستخدم wix 3.0. لدي اسم مجلد "images". لذلك أريد نسخ جميع الملفات من الصور إلى حزمة msi. عندما أقوم بنسخ كل الملف وتثبيت msi على جهاز كمبيوتر آخر، فإنه لم يربط الصور.وعندما أستخدم File Element البسيط، فإن الملفات ترتبط بحزمة msi.اذا ماذا يجب أن أفعل،

رد علي قريبا

تشكرك سمير

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

المحلول

من الواضح أنك تريد إنشاء تطبيق يمكنه إنشاء مثبت شاشة التوقف الذي يتضمن عددًا من ملفات الصور التي حددها المستخدم - وهو نوع من تطبيق InstallShield المتخصص فقط لإنشاء مثبتات شاشات التوقف.

سأقوم أولاً بإنشاء ملف ملف قالب MSI (مع Wix أو أي شيء آخر) الذي يقوم بمعظم العمل.أنت لا تعرف الملفات التي سيحددها المستخدم لاحقًا، لذا أضف مكونًا نائبًا بالمعرف "UserSelectedFiles".قم بتوزيع ملف MSI القالب هذا مع التطبيق الخاص بك.

ثم ، عندما يريد المستخدم إنشاء مثبت جديد ، ابدأ بنسخ القالب.قم بتحرير ملف msi المنسوخ بحيث يقوم أيضًا بتثبيت الملفات التي حددها المستخدم.يمكنك القيام بذلك باستخدام فصول .NET التي يمكنك العثور عليها في واجهة برمجة تطبيقات "Deployment Tools Foundation".هذه مجموعة من التجميعات التي تأتي مع wix؛نلقي نظرة على C:\program files\Windows Installer XML v3\sdk.

لقد استخدمت DTF API فقط لبعض الأشياء البسيطة، مثل هذا المثال الذي يحسب إدخالات جدول الملفات في MSI:

var database = new Database(@"\path\to\some\file.msi");
var list = database.ExecuteQuery("SELECT FileName FROM File");
Console.WriteLine(list.Count);

ستكون قضيتك أكثر تعقيدًا بعض الشيء.ربما سوف تضطر إلى ذلك

  • قم بإنشاء أرشيف سيارة أجرة يحتوي على ملفات الصور مع الفصول التي تجدها فيMicrosoft.Deployment.Compression.Cabمساحة الاسم.
  • دمج أرشيف الكابينة في MSI مع Database.Merge
  • أضف إدخالات جديدة إلى جدول الملفات من MSI
  • قم بتغيير رمز المنتج إلى شيء فريد لكل MSI تم إنشاؤه
  • إلى آخره

للحصول على فكرة عن محتوى ملف MSI وكيف يمكن تحريره، أنصحك أولاً بالتجول قليلًا باستخدام orca و msidb أدوات.

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