我需要在安装后注册一个HTTP端口,但我想这可以抽象为通常执行任何命令行命令。这是我到目前为止所得到的:
<CustomAction Id="ExecPortOpen" Directory="INSTALLFOLDER" Execute="immediate" ExeCommand="cmd.exe "netsh http add urlacl url=http://+:1234/ user=Everyone"" Return="ignore" />
<InstallExecuteSequence>
<Custom Action="ExecPortOpen" After="InstallFinalize" />
</InstallExecuteSequence>
这只是在安装中打开一个命令提示符,并且不执行任何操作。我尝试在cmd.exe和命令之间添加/ c(我不知道它做了什么)但只是打开并关闭命令提示符而不执行命令。我该如何工作?我使用的是WiX 3.8。
答案 0 :(得分:14)
解决了我自己,实际上是一个UAC /权限问题。对于任何感兴趣的团体,这里是工作代码:
<CustomAction Id="ExecPortOpen" Directory="INSTALLFOLDER" Execute="commit" Impersonate="no" ExeCommand="cmd.exe /c "netsh http add urlacl url=http://+:1234/ user=Everyone"" Return="check" />
<InstallExecuteSequence>
<Custom Action="ExecPortOpen" After="InstallInitialize" />
</InstallExecuteSequence>