ایجاد نصب کننده ویندوز "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 وجود دارد، اما استفاده از ابزارهایی که با ویژوال استودیو می آیند سریع است. منوی "Tools" و "Create GUID" را انتخاب کنید.
دریافت یک کد 36 رقمی، از جمله hyphen، و تنظیم آن را به Wix / محصول / @Id.
<Wix>
<Product Id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" />
Wix / محصول / @Name
این نام برنامه نمایش داده شده در هر قسمت از صفحه نصب است. همچنین می تواند نامی باشد که در لیست برنامه های افزودن و حذف ظاهر می شود.
<Wix>
<Product Name="リトルセイバー 体験版" />
Wix / محصول / @Manufacturer
نام سازنده را وارد کنید. به عنوان نویسنده نصب کننده یا ناشر لیست برنامه ظاهر می شود.
<Wix>
<Product Manufacturer="ソーサリーフォース">
Wix / محصول / UIRef / @Id
شناسه ای را وارد کنید که مشخص می کند چه صفحه نمایش در سهل آموز نصب نمایش داده می شود. این بار، از آنجا که حداقل پیکربندی برای نمایش و نصب تنها مجوز است، "WixUI_Minimal" مشخص شده است.
<Wix>
<Product>
<UIRef Id="WixUI_Minimal" />
من فکر می کنم که سایت زیر مفید خواهد بود در چه نوع تعیین می تواند انجام شود.
با استفاده از مجموعه گفتگوی WixUI
Wix /Product/WixVariable/*
پرونده را برای استفاده در UI سهل آموز مشخص می کند. حداقل پیکربندی از سه فایل استفاده می کند: مقدار شناسه ثابت است و مقدار نام فایل است.
<Wix>
<Product>
<WixVariable Id="WixUILicenseRtf" Value="license.rtf" />
<WixVariable Id="WixUIDialogBmp" Value="dialog.bmp" />
<WixVariable Id="WixUIBannerBmp" Value="banner.bmp" />
نماد برنامه نصب
برای آیکون های کاربردی که در "افزودن و حذف برنامه ها" و غیره ظاهر می شوند، استفاده می شود.
در "SourceFile" عنصر Icon، فایل ico را به عنوان یک مسیر نسبی از پوشه پروژه مشخص کنید.
"Property Id="ARPPRODUCTICON" تعریف انجمن آیکون است.
<Wix>
<Product>
<Icon Id="LITTLESAVIOR.ICO" SourceFile="LittleSaviorTrial\LittleSavior.ico" />
<Property Id="ARPPRODUCTICON" Value="LITTLESAVIOR.ICO" />
Wix / قطعه (پیکربندی پوشه فایل)
تنظیمات پوشه را برای نصب تنظیم می کند. در اصل، شما همچنین فایل ها را قرار دهید، اما ابتدا فقط پوشه ها را ایجاد کنید.
مقدار مجموعه "Name" به "Id="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.
فایل Product.wxs را باز کنید.
پرونده ها را از نماد سمت چپ انتخاب کنید. پوشه های زیر ProgramFilesFolder را حذف کنید.
روی پوشه ProgramFilesFolder کلیک راست کرده و پوشه Import را انتخاب کنید.
پوشه ای را که می خواهید فایل ها را نصب کنید انتخاب کنید.
مجموعه ای از فایل ها به درخت اضافه می شود.
به منظور مرتبط شدن با پارامترهای دیگر، پوشه اضافه شده را انتخاب کنید و "Id" را دوباره به "INSTALLFOLDER" تنظیم کنید.
یک میانبر برای منوی Start ایجاد کنید. "جدید" و "میانبر" را از منوی کلیک راست فایل exe انتخاب کنید.
هنگامی که میانبر اضافه شد، آن را انتخاب کنید و روی خالی کلیک راست کنید تا ملک اضافه شود.
پارامترهای زیر را اضافه کنید: (تغییر نام منحصر به فرد برای مطابقت با برنامه.)
مقدارویژگی | |
---|---|
شناسه | "تالي ساويرترال". EXE_shortcut |
نام | محاکمه صابر کوچک |
دایرکتوری | ProgramMenuDir |
WorkingDirectory | INSTALLDIR |
آیکون | LITTLESAVIOR. IĈO |
IconIndex | 0 |
تبلیغات | بله |
سپس برگه "ویژگی" را انتخاب کنید، روی "ProductFeature" راست کلیک کنید و اجزای انتخاب را برای اضافه کردن انتخاب کنید.
همه را انتخاب کنید.
افزوده.
ذخیره.
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>
ساخت و اجرای تایید
پیکربندی راه حل را "انتشار" در ویژوال استودیو.
شروع ساختمان از راه حل ساخت.
هنگامی که ساختمان موفق است، یک فایل msi در پوشه "bin\Release" تولید می شود.
اگر سعی کنید آن را اجرا کنید، نصب کننده شروع خواهد شد.
هنگامی که نصب کامل شد، یک میانبر در منوی Start ایجاد خواهد شد.
فایل در پوشه فایل های برنامه (x86) قرار داده شده است.
برنامه همچنین در "برنامه ها و توابع" ظاهر می شود.
اجرای برنامه و مطمئن شوید که آن را به درستی کار می کند.
خلاصه
در اینجا مراحل ایجاد یک نصب کننده MSI را با استفاده از Visual Studio و WiX شرح داده اند. من می خواهم تنظیمات دقیق را در یک مقاله جداگانه توضیح دهم.