我正在尝试使用我的C#项目的服务安装来执行WiX安装程序。这是我第一次尝试,我不明白为什么它不起作用。
我已经设置了一个ServiceInstall但是当我运行安装程序时,我在此页面中被阻止:
几秒钟后我收到错误:
我使用相同的参数从Visual Studio Installer创建了WiX安装。有代码:
<Product ... />
<Feature Id="ProductFeature" Title="$(var.product)" Level="1">
<ComponentRef Id ="MyService"/>
</Feature>
<UIRef Id="WixUI_InstallDir"/>
<!-- Set install directory -->
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER"/>
</Product>
<Fragment>
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="$(var.product)">
<Component Id="MyService" Guid="{GUID-HERE}" KeyPath="yes">
<!-- service will need to be installed under Local Service -->
<ServiceInstall
Id="MyService"
Type="ownProcess"
Vital="yes"
Name="MyService"
DisplayName="Service"
Description=""
Start="auto"
Account="NT AUTHORITY\LocalService"
ErrorControl="normal"/>
<ServiceControl Id="StartDDService" Name="MyService" Start="install" Wait="no" />
<ServiceControl Id="StopDDService" Name="MyService" Stop="both" Wait="yes" Remove="uninstall" />
</Component>
</Directory>
</Directory>
</Fragment>
<Fragment>
<ComponentGroup Id="ProductComponents">
<Component Id="ProductComponent" Guid="{}" Directory="INSTALLFOLDER">
<File Id="MyService.exe" Source="$(var.MyService.TargetDir)\MyService.exe"/>
</Component>
</ComponentGroup>
</Fragment>
答案 0 :(得分:3)
&#34;未能开始&#34;错误可能是一个特权问题,但该消息只是一个默认消息,无论它是否是特权。
这些案例通常是服务本身或依赖:
尚未安装缺少的依赖Dll(或依赖项的依赖项等)。这包括.NET框架。
服务依赖于正在安装到GAC的程序集,并且在启动服务时实际上并未提交这些程序集,因此这是缺少依赖项的特殊情况。
&#34;未能开始&#34;基本上是服务中的起始代码没有完成。 OnStart代码崩溃可能导致此问题。 IMO服务应始终具有跟踪可用于跟踪路径和重要值以提供诊断。