我搜索了几天以及我发现的所有不起作用的东西。我想在我的WiX安装程序中调用cmd来安装服务和密钥。
cmd调用非常好,但没有任何事情发生。这意味着不安装服务和密钥。
<CustomAction Id='CMDInstallService' Directory='INSTALLLOCATION' Execute='deferred' ExeCommand='[SystemFolder]cmd.exe /c "C:\Windows\Microsoft.NET\Framework\v2.0.50727\installutil.exe /DisplayName=[DISPLAYNAME] /ServiceName=[SERVICENAME] [INSTALLLOCATION][ProductName]\bin\PontefixSvc.exe"' Return='ignore'/>
<CustomAction Id='CMDInstallKey' Directory='INSTALLLOCATION' Execute='deferred' ExeCommand='[SystemFolder]cmd.exe /c " [INSTALLLOCATION][ProductName]\scripts\PontefixEncryptionTool.exe -install [ProductName] [INSTALLLOCATION][ProductName]\KeyContainer\keycontainer.pkxml del .\keycontainer.pkxml "' Return='ignore' />
<InstallExecuteSequence>
<Custom Action='CMDInstallService' Before='InstallFinalize'></Custom>
<Custom Action='CMDInstallKey' Before='InstallFinalize'></Custom>
</InstallExecuteSequence>
有人可以帮助我吗?
答案 0 :(得分:1)
要运行命令,我建议您使用Quite Execution CA.您可以在Wix文档中找到示例:http://wixtoolset.org/documentation/manual/v3/customactions/qtexec.html,您想要的是延迟执行,即一次执行的两个自定义操作。
另外我注意到您正在通过cmd在第一个CA中安装服务,为什么不使用Wix ServiceInstall instad? (http://wixtoolset.org/documentation/manual/v3/xsd/wix/serviceinstall.html)