إنشاء مثبت Windows "MSI" باستخدام WiX part2

تاريخ إنشاء الصفحة :

في البداية

آخر مرة أعددنا الملفات اللازمة وأعدنا المشروع. هذه المرة، تحرير "Product.wxs" وجعل إعدادات مختلفة من المثبت.

تحرير إعدادات التثبيت (Product.wxs)

يتم وصف محتويات الملف Product.wxs بتنسيق XML. هناك عدد من المعلمات، ولكن أولا سوف نقوم بإجراء الحد الأدنى من الإعدادات للتأكد من أن المثبت يمكن إنشاؤه. إذا كنت ترغب في إعداده بمزيد من التفصيل، يرجى الرجوع إلى مقال آخر أو الموقع الرسمي.

في وقت إنشاء المشروع، تبدو التعليمات البرمجية كما يلي:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Product Id="*" Name="SetupLittleSaviorTrial_x86" Language="1033" Version="1.0.0.0" Manufacturer="" UpgradeCode="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX">
    <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />

    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
    <MediaTemplate />

    <Feature Id="ProductFeature" Title="SetupLittleSaviorTrial_x86" Level="1">
      <ComponentGroupRef Id="ProductComponents" />
    </Feature>
  </Product>

  <Fragment>
    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder">
        <Directory Id="INSTALLFOLDER" Name="SetupLittleSaviorTrial_x86" />
      </Directory>
    </Directory>
  </Fragment>

  <Fragment>
    <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
      <!-- TODO: Remove the comments around this Component element and the ComponentRef below in order to add resources to this installer. -->
      <!-- <Component Id="ProductComponent"> -->
      <!-- TODO: Insert files, registry keys, and other resources here. -->
      <!-- </Component> -->
    </ComponentGroup>
  </Fragment>
</Wix>

إليك بعض الأشياء التي تحتاج إلى تغييرها: إضافة علامات وسمات غير موجودة.

Wix/ المنتج/@Id

تعيين GUID الذي يعرف التطبيق.

هناك العديد من الأدوات لإنشاء GUID، ولكن من السريع استخدام الأدوات التي تأتي مع Visual Studio. حدد القائمة "أدوات" و "إنشاء GUID".

image

احصل على رمز مكون من 36 رقما، بما في ذلك واصلة، ثم قم بتعيينه إلى Wix/Product/@Id.

<Wix>
  <Product Id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" />

Wix/ المنتج/@Name

هذا هو اسم التطبيق المعروض في كل جزء من شاشة المثبت. كما يمكن أن يكون الاسم الذي يظهر في القائمة إضافة وإزالة البرامج.

<Wix>
  <Product Name="リトルセイバー 体験版" />

image

image

Wix/ المنتج/@Manufacturer

أدخل اسم الشركة المصنعة. يظهر كمؤلف المثبت أو ناشر قائمة البرامج.

<Wix>
  <Product Manufacturer="ソーサリーフォース">

image

image

ويكس/ المنتج/ UIRef/@Id

أدخل معرفا يعرف الشاشة التي سيتم عرضها في معالج التثبيت. هذه المرة، لأنه هو التكوين الأدنى لعرض وتثبيت الترخيص فقط، يتم تحديد "WixUI_Minimal".

<Wix>
  <Product>
    <UIRef Id="WixUI_Minimal" />

وأعتقد أن الموقع التالي سيكون مفيدا في أي نوع من التعيين يمكن القيام به.

استخدام مجموعة الحوار WixUI

ويكس / المنتج / ويكس فاريبل / *

تحديد الملف الذي سيتم استخدامه في واجهة المستخدم المعالج. يستخدم التكوين الأدنى ثلاثة ملفات: يتم إصلاح قيمة معرف والقيمة هو اسم الملف.

<Wix>
  <Product>
    <WixVariable Id="WixUILicenseRtf" Value="license.rtf" />
    <WixVariable Id="WixUIDialogBmp" Value="dialog.bmp" />
    <WixVariable Id="WixUIBannerBmp" Value="banner.bmp" />

رمز تطبيق التثبيت

يتم استخدامه لرموز التطبيقات التي تظهر في "إضافة وإزالة البرامج"، الخ.

في "SourceFile" عنصر الرمز، حدد ملف ico كمسار نسبي من مجلد المشروع.

"معرف الخاصية = "ARPPRODUCTICON" هو تعريف اقتران الرمز.

<Wix>
  <Product>
    <Icon Id="LITTLESAVIOR.ICO" SourceFile="LittleSaviorTrial\LittleSavior.ico" />
    <Property Id="ARPPRODUCTICON" Value="LITTLESAVIOR.ICO" />

Wix/جزء (تكوين مجلد ملف)

تعيين تكوين المجلد لتثبيته. في الأصل، سوف تضع الملفات أيضا، ولكن إنشاء المجلدات فقط أولا.

قيمة "اسم" تعيين إلى "معرف = "ProgramMenuDir" هو اسم المجلد الموضوع في اختصار القائمة ابدأ. تعيين التوجيهات كذلك.

<Wix>
  <Fragment>
    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder">
        <Directory Id="INSTALLFOLDER" Name="SetupLittleSaviorTrial_x86" />
      </Directory>
      <Directory Id="ProgramMenuFolder">
        <Directory Id="ProgramMenuDir" Name="リトルセイバー 体験版">
          <Component Id="ProgramMenuDir" Guid="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX">
            <RemoveFolder Id="ProgramMenuDir" On="uninstall" />
            <RegistryValue Root="HKCU" Key="Software\[Manufacturer]\[ProductName]" Type="string" Value="" KeyPath="yes" />
          </Component>
        </Directory>
      </Directory>
    </Directory>
  </Fragment>

إضافة ملفات التثبيت

يمكنك أيضا إضافته إلى ملف Product.wxs باليد. نظرا لأن GUID مطلوب لملف، فمن الصعب العمل مع المزيد من الملفات. لذلك، لإضافة الملفات، استخدم WixEdit لإضافتها.

إطلاق WixEdit.

image

افتح الملف Product.wxs.

image

image

حدد الملفات من الرمز الموجود على اليسار. حذف المجلدات الموجودة أسفل ProgramFilesFolder.

image

انقر بزر الماوس الأيمن فوق مجلد ProgramFilesFolder وحدد استيراد المجلد.

image

حدد المجلد الذي تريد تثبيت الملفات فيه.

image

تتم إضافة مجموعة من الملفات إلى الشجرة.

image

من أجل إقران مع معلمات أخرى، حدد المجلد المضافة وتعيين "معرف" مرة أخرى إلى "INSTALLFOLDER".

image

إنشاء اختصار لقائمة ابدأ. حدد "جديد" و "اختصار" من القائمة بزر الماوس الأيمن من ملف exe.

image

عند إضافة اختصار، حدد ثم انقر بزر الماوس الأيمن فوق فارغة لإضافة الخاصية.

image

إضافة المعلمات التالية: (تغيير الاسم الفريد لمطابقة البرنامج.)

قيمة
السمة
معرف ليتل سافيوريتيان. EXE_shortcut
اسم محاكمة صابر الصغيرة
دليل برنامجمنودير
دليل العمل تثبيتدير
رمز ليتل سافيور. إيكو
أيقونةندك 0
الاعلان نعم

image

ثم حدد علامة التبويب "ميزة" ، انقر بزر الماوس الأيمن على "ProductFeature" وحدد تحديد المكونات لإضافتها.

image

حدد الكل.

image

مضاف.

image

أنقذ.

image

Product.wxs يجب أن تبدو شيئا من هذا القبيل :

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Product Id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" Name="リトルセイバー 体験版" Language="1033" Version="1.0.0.0" Manufacturer="ソーサリーフォース" UpgradeCode="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX">
    <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
    <MediaTemplate />
    <UIRef Id="WixUI_Minimal" />
    <WixVariable Id="WixUILicenseRtf" Value="license.rtf" />
    <WixVariable Id="WixUIDialogBmp" Value="dialog.bmp" />
    <WixVariable Id="WixUIBannerBmp" Value="banner.bmp" />
    <Icon Id="LITTLESAVIOR.ICO" SourceFile="LittleSaviorTrial\LittleSavior.ico" />
    <Property Id="ARPPRODUCTICON" Value="LITTLESAVIOR.ICO" />
    <Feature Id="ProductFeature" Title="SetupLittleSaviorTrial_x86" Level="1">
      <ComponentGroupRef Id="ProductComponents" />
      <ComponentRef Id="LITTLESAVIOR.ICO" />
      <ComponentRef Id="LITTLESAVIORTRIAL.EXE" />
      <ComponentRef Id="LITTLESAVIORTRIAL.EXE.CONFIG" />
      <ComponentRef Id="ProgramMenuDir" />
    </Feature>
    <UI />
  </Product>
  <Fragment>
    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder">
        <Directory Id="INSTALLFOLDER" Name="LittleSaviorTrial">
          <Component Id="LITTLESAVIOR.ICO" DiskId="1" Guid="0B4DD82C-C6EF-4299-8EAB-4F9BB35FD952">
            <File Id="LITTLESAVIOR.ICO" Name="LittleSavior.ico" Source="LittleSaviorTrial\LittleSavior.ico" />
          </Component>
          <Component Id="LITTLESAVIORTRIAL.EXE" DiskId="1" Guid="8D805936-A25E-4DA6-9A0A-A5BDB2AD768D">
            <File Id="LITTLESAVIORTRIAL.EXE" Name="LittleSaviorTrial.exe" Source="LittleSaviorTrial\LittleSaviorTrial.exe" KeyPath="yes">
              <Shortcut Id="LITTLESAVIORTRIAL.EXE_shortcut" Name="リトルセイバー 体験版" Directory="ProgramMenuDir" WorkingDirectory="INSTALLDIR" Icon="LITTLESAVIOR.ICO" IconIndex="0" Advertise="yes" />
            </File>
          </Component>
          <Component Id="LITTLESAVIORTRIAL.EXE.CONFIG" DiskId="1" Guid="790C427A-A72C-4444-ACD6-ECF32AA788AD">
            <File Id="LITTLESAVIORTRIAL.EXE.CONFIG" Name="LittleSaviorTrial.exe.config" Source="LittleSaviorTrial\LittleSaviorTrial.exe.config" />
          </Component>
        </Directory>
      </Directory>
      <Directory Id="ProgramMenuFolder">
        <Directory Id="ProgramMenuDir" Name="リトルセイバー 体験版">
          <Component Id="ProgramMenuDir" Guid="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX">
            <RemoveFolder Id="ProgramMenuDir" On="uninstall" />
            <RegistryValue Root="HKCU" Key="Software\[Manufacturer]\[ProductName]" Type="string" Value="" KeyPath="yes" />
          </Component>
        </Directory>
      </Directory>
    </Directory>
  </Fragment>
  <Fragment>
    <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
    </ComponentGroup>
  </Fragment>
</Wix>

إنشاء وتشغيل تأكيد

جعل تكوين الحل "الإصدار" في Visual Studio.

image

بدء البناء من "الحل البناء".

image

عند نجاح المبنى، يتم إنشاء ملف msi في المجلد "bin\Release".

image

إذا حاولت تشغيله، سيبدأ المثبت.

image

عند اكتمال التثبيت، سيتم إنشاء اختصار في القائمة ابدأ.

image

يتم وضع الملف في مجلد ملفات البرامج (x86).

image

كما يظهر التطبيق في "البرامج والوظائف".

image

تشغيل التطبيق وتأكد من أنه يعمل بشكل صحيح.

image

ملخص

هنا وصفنا الخطوات لإنشاء مثبت MSI باستخدام Visual Studio و WiX. أود أن أشرح الإعدادات التفصيلية في مقال منفصل.