gpt4 book ai didi

localization - Wix 服务不以本地化帐户开头

转载 作者:行者123 更新时间:2023-12-04 00:36:46 26 4
gpt4 key购买 nike

我有几个开始安装和启动服务的 WIX 项目。由于我需要安装程序在非英语机器上工作,我一直在使用 WixQueryOsWellKnownSID 属性为服务提供本地化的帐户名称。

但我显然搞错了;因为尽管安装了服务,但它们不会在某些区域设置中启动。到目前为止,我知道安装人员在荷兰、法国、日本和中国工作;但不适用于德国和比利时(比利时机器上的语言是法语)。

在安装过程中,我们收到“服务‘ServiceName’启动失败。确认您有足够的权限启动系统服务。”错误信息。如果我忽略该错误然后打开服务 MMC,该服务将显示为具有本地化帐户名称(在德国机器上为 NT-AUTORITÄT\NETZWERKDIENST);如果我随后手动将服务帐户设置为网络服务,服务 MMC 将显示 Netzwerkdienst,并且服务运行良好。

我已经用 Windows7 和 Server2008R2 对此进行了测试 - 在两个操作系统上都存在相同的问题。

WIX服务代码:

<PropertyRef Id="WIX_ACCOUNT_NETWORKSERVICE"/>

<Component Id="ProductComponent" Guid="5bcdeb4a-9832-4a01-9863-60bc0634a8fd">
<File Id="$(var.WebLoggerSR2Service.TargetName)" Name="$(var.WebLoggerSR2Service.TargetFileName)"
Source="$(var.WebLoggerSR2Service.TargetPath)" DiskId="1" KeyPath="yes" Checksum="yes"></File>
<ServiceInstall Id="ServiceInstaller" Type="ownProcess" Name="$(var.WebLoggerSR2Service.TargetName)"
Description="!(loc.SVCINST_DESCRIPTION)"
ErrorControl="normal" Start="auto" Account="[WIX_ACCOUNT_NETWORKSERVICE]"/>
<ServiceControl Id="StartWixServiceInstaller"
Name="$(var.WebLoggerSR2Service.TargetName)" Start="install" Wait="no" />
<ServiceControl Id="StopWixServiceInstaller" Name="$(var.WebLoggerSR2Service.TargetName)"
Stop="both" Wait="yes" Remove="uninstall" />
<Util:EventSource xmlns:Util="http://schemas.microsoft.com/wix/UtilExtension"
Name="$(var.WebLoggerSR2Service.TargetName)" Log="Application"
EventMessageFile="[NETFRAMEWORK20INSTALLROOTDIR]EventLogMessages.dll" />
<RemoveFolder Id="INSTALLLOCATION" On="uninstall"/>
</Component>

我在 Visual Studio 2012 上使用 WIX 3.9.16.0 版和 Votive

最佳答案

也许只是一个评论,但对于那个空间来说太长了....

NetworkServiceAccount 上的文档说:

This account can be specified in a call to the CreateService and ChangeServiceConfig functions. Note that this account does not have a password, so any password information that you provide in this call is ignored. While the security subsystem localizes this account name, the SCM does not support localized names. Therefore, you will receive a localized name for this account from the LookupAccountSid function, but the name of the account must be NT AUTHORITY\NetworkService when you call CreateService or ChangeServiceConfig, regardless of the locale, or unexpected results can occur.(learn.microsoft.com)

如果它是正确的,那就太奇怪了,因为它似乎在说 CreateService(这是 MSI 最终调用的)需要名称的英文形式,但当您实际要求它时,您将获得本地化名称。这就是您看到本地化名称 n MMC 的原因,所以我的愚蠢问题是您是否尝试过在其他语言操作系统版本上使用标准英语形式?

关于localization - Wix 服务不以本地化帐户开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23652175/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com