Загрузка данных


2.2. СОЗДАНИЕ ПАКЕТА УСТАНОВЩИКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ МАЙКРОСОФТ (MSI) ДЛЯ УСТАНОВКИ ПРОГРАММ СТОРОННИХ ПРОИЗВОДИТЕЛЕЙ

Цель работы

Разработать установочный пакет в формате MSI, позволяющий автоматизированно и централизованно устанавливать стороннее приложение в корпоративной среде.

Инструментарий

· WiX Toolset v3.11 — набор компиляторов для создания MSI из XML-описаний.
· Windows SDK (для candle.exe и light.exe).
· Тестовое приложение — утилита для ведения заметок (Notepad++ или самописное).

Этапы выполнения

1. Установка WiX Toolset и добавление путей к исполняемым файлам в PATH.
2. Создание файла продукта Product.wxs:

```xml
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Product Id="*" 
           Name="TestApp" 
           Language="1049" 
           Version="1.0.0.0" 
           Manufacturer="Company" 
           UpgradeCode="12345678-1234-1234-1234-123456789012">
    
    <Package InstallerVersion="200" 
             Compressed="yes" 
             InstallScope="perMachine" />

    <Media Id="1" Cabinet="test.cab" EmbedCab="yes" />

    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder">
        <Directory Id="INSTALLFOLDER" Name="TestApp">
          <Component Id="MainComponent" Guid="*">
            <File Id="MainExe" Source="TestApp.exe" KeyPath="yes" />
            <File Id="ConfigFile" Source="settings.ini" />
          </Component>
        </Directory>
      </Directory>
      <!-- Ярлык на рабочем столе -->
      <Directory Id="DesktopFolder" SourceName="Desktop" />
    </Directory>

    <Feature Id="MainFeature" Title="TestApp" Level="1">
      <ComponentRef Id="MainComponent" />
    </Feature>

    <!-- Создание ярлыка -->
    <DirectoryRef Id="DesktopFolder">
      <Component Id="DesktopShortcut" Guid="*">
        <Shortcut Id="AppShortcut" 
                  Name="TestApp" 
                  Target="[INSTALLFOLDER]TestApp.exe" 
                  WorkingDirectory="INSTALLFOLDER" />
        <RegistryValue Root="HKCU" 
                       Key="Software\TestApp" 
                       Name="Installed" 
                       Type="integer" 
                       Value="1" 
                       KeyPath="yes" />
      </Component>
    </DirectoryRef>

    <Feature Id="DesktopFeature" Title="DesktopShortcut" Level="1">
      <ComponentRef Id="DesktopShortcut" />
    </Feature>

  </Product>
</Wix>
```

3. Компиляция:
   · candle.exe Product.wxs → создается Product.wixobj.
   · light.exe Product.wixobj → создается TestApp.msi.
4. Тестирование:
   · Установка на тестовой машине (двойным кликом по MSI).
   · Проверка появления файлов в C:\Program Files\TestApp.
   · Проверка ярлыка на рабочем столе.
   · Удаление через «Панель управления» → программы и компоненты.
5. Логирование установки для отладки:
      msiexec /i TestApp.msi /l*v install.log

Результат

Получен готовый MSI-пакет, который можно развертывать через групповые политики (GPO) или SCCM. Пакет поддерживает стандартные параметры командной строки (/quiet, /passive, /uninstall).