В новой версии .NET Core 3 я пытаюсь создать службу Windows с новым рабочим шаблоном службы.Мне нужно иметь возможность установить это с групповой политикой, и WiX, кажется, инструмент для работы.
Я создал файл .wxs и без указания раздела ServiceInstall, он отлично устанавливается.
Вот мой файл: ОБНОВЛЕНО
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="SystemInformationService" Language="1033" Version="1.0.0.0" Manufacturer="MyCompany" UpgradeCode="f08191cf-461e-481b-a2a1-6f54d6ae5331">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<!-- Embed cab files, don't include them in the output -->
<MediaTemplate EmbedCab="yes"/>
<!-- Default WiX dialog set -->
<UIRef Id="WixUI_Mondo" />
<!-- License agreement -->
<WixVariable Id="WixUILicenseRtf" Value="LicenseAgreement.rtf" />
<Feature Id="ProductFeature" Title="SystemInformationService.Setup" Level="1">
<ComponentGroupRef Id="ProductComponents" />
<ComponentGroupRef Id="HeatGenerated" />
</Feature>
</Product>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="SystemInformationService" />
</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" Guid="5BB7300D-C29F-4C87-B461-AAE3AA4EB56D">
<CreateFolder/>
<!--<File Source="$(var.SystemInformationService.TargetPath)" />-->
<ServiceInstall
Id="ServiceInstaller"
Type="ownProcess"
Name="SystemInformationService"
DisplayName="System Information Service"
Description="System Information service by MyCompany"
Start="auto"
Vital="no"
Account="LocalSystem"
Interactive="no"
ErrorControl="normal" />
<ServiceControl
Id="ServiceInstaller"
Start="install"
Stop="both"
Remove="uninstall"
Name="SystemInformationService"
Wait="yes" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>
Теперь я пытаюсь добавить служебные компоненты, чтобы они запускались при установке.Когда я запускаю установщик после его добавления, пользовательский интерфейс установщика зависает на «Запуск службы ...».Я попытался добавить аргументы 'start', так как увидел это в другом ответе.
Я думаю, поскольку это ядро .net, мне может понадобиться добавить действие .exe или что-то еще, чтобы запустить службу.Это все, что я могу придумать - любые предложения помогут.
Спасибо
ОБНОВЛЕНИЕ: Я обновил файл .wxs до того, что у меня сейчас есть, и правильно установил его при развертывании, зависящем от инфраструктуры.Моя проблема заключалась в том, чтобы указать AnyCPU вместо x86.Но ... Теперь, когда я переключаюсь на автономное развертывание, я получаю ту же ошибку, что и раньше.Так что это должно быть как-то связано с тем, как я публикую ядро .net.
Это мой профиль на данный момент.Когда я переключаюсь на фреймворк, установщик работает нормально и запускает службу.