Syf AK Ответов: 1

Что такое правильный способ, чтобы добавить несколько проектов библиотек классов в установщик на Wix


Я пытаюсь создать установщик wix для службы окон. Моя служба состоит из четырех проектов библиотеки классов. Мои вопросы заключаются в том, как я могу добавить несколько проектов библиотеки классов в установщик wix.

Я перешел по этой ссылке
https://github.com/Robs79/How-to-create-a-Windows-Service-MSI-Installer-Using-WiX/blob/master/WindowsService.Установщик/Product.wxs
он не показывает, как добавить несколько проектов библиотеки классов. Пожалуйста, кто-нибудь помогите мне, как это сделать. или предоставьте какую-нибудь справочную ссылку, на которую я могу сослаться.

заранее спасибо


Что я уже пробовал:

Продукта.wxs:

<?define Name = "ESS_VillageMateIntegrtion" ?>
<?define Manufacturer = "IRIZ ID TECH" ?>
<?define VersionNumber = "1.0.0.0" ?>
<?define UpgradeCode = "{FF9D7B21-A4FE-4DEB-A2FE-E77228F95831}" ?>


<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Product Id="*"
           UpgradeCode="$(var.UpgradeCode)"
           Version="$(var.VersionNumber)"
           Language="1033"
           Name="$(var.Name)"
           Manufacturer="$(var.Manufacturer)">

    <Package InstallerVersion="300" Compressed="yes" InstallScope="perMachine" />
    <Media Id="1" Cabinet="ESS_VillageMateIntegrtion" EmbedCab="yes"></Media>

    <!-- Allow upgrades and prevent downgrades -->
    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
    <MediaTemplate />
  </Product>

  <Fragment>
    <!-- Define the directory structure -->

    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder">
        <Directory Id="ROOTDIRECTORY" Name="$(var.Manufacturer)">
          <Directory Id="APPLICATIONROOTDIRECTORY" Name="$(var.Name)" />
        </Directory>
      </Directory>
    </Directory>
  </Fragment>



  <!-- Add files to your installer package -->
  <Fragment>
    <DirectoryRef Id="APPLICATIONROOTDIRECTORY">
      <Component Id="$(var.ESS_VillageMateIntegrtion.TargetFileName)" Guid="{F03996CC-3A49-47A7-91F1-27DBF563AE83}">
        <File Id="$(var.ESS_VillageMateIntegrtion.TargetFileName)" Source="$(var.ESS_VillageMateIntegrtion.TargetPath)" KeyPath="yes" />
      </Component>

      <Component Id="$(var.ESS_VillageMateIntegrtionServiceConfig.TargetFileName)" Guid="{CC064C9B-298A-4D6D-AF64-40DA3657AAAB}">
        <File Id="$(var.ESS_VillageMateIntegrtionServiceConfig.TargetFileName)" Source="$(var.ESS_VillageMateIntegrtionServiceConfig.TargetPath)" KeyPath="yes" />
      </Component>

      <Component Id="$(var.ESS_VillageMateService.TargetFileName)" Guid="{CB37D43D-BB08-4DF2-A7B0-87A819A66CED}">
        <File Id="$(var.ESS_VillageMateService.TargetFileName)" Source="$(var.ESS_VillageMateService.TargetPath)" KeyPath="yes" />
      </Component>

      <Component Id="$(var.ESS_VillageMateIntegrationTray.TargetFileName)" Guid="{71FD65C9-A657-4093-8D5A-28743972E536}">
        <File Id="$(var.ESS_VillageMateIntegrationTray.TargetFileName)" Source="$(var.ESS_VillageMateIntegrationTray.TargetPath)" KeyPath="yes" />
      </Component>

      <Component Id="Components">
        <!-- Remove the log file on uninstall -->
        <RemoveFile Id="log" Name="*.txt" On="both" />

        <!-- Tell WiX to install the Service -->
        <ServiceInstall Id="ServiceInstaller"
                        Type="ownProcess"
                        Vital="yes"
                        Name="ESS_VillageMateIntegrtion"
                        DisplayName="ESS_VillageMateIntegrtion Service"
                        Description="Write Data one DB to another DB"
                        Start="auto"
                        Account="LocalSystem"
                        ErrorControl="normal" />

        <!-- Tell WiX to start the Service -->
        <ServiceControl Id="StartService"
                        Start="install"
                        Stop="both"
                        Remove="uninstall"
                        Name="ESS_VillageMateIntegrtion"
                        Wait="yes" />
      </Component>
    </DirectoryRef>
  </Fragment>

</Wix>

1 Ответов

Рейтинг:
2

AnkushK1

Я не уверен, что полностью понял ваш вопрос.

Когда вы публикуете свой сервис, он будет выводить библиотеки DLL вашего проекта библиотеки классов в папку публикации. Затем вам нужно будет запустить команду "heat", которая выведет файл wix, ссылающийся на файлы/DLL папки publish, которые будут включены в установщик. После этого шага вам нужно будет построить свой проект wix, чтобы получить установщик. Для получения дополнительной информации о команде heat обратитесь к следующей ссылке

Уборочный Инструмент (Тепло)[^]