我有一个WIX安装程序,我需要运行两个命令:
net localgroup administrators reviewer /add
和
appcmd.exe set config /section:applicationPools /[name='Reviewer'].processModel.identityType:SpecificUser /[name='Reviewer'].processModel.userName:reviewer /[name='Reviewer'].processModel.password:reviewer
第二个命令相当复杂,涉及方括号和单引号
第一个命令必须来自C:\Program files\mycompany\myfolder
,第二个来自C:\windows\system32\inetsrv
这是我的两个WIX自定义操作:
<CustomAction Id="AssignUserToAdminGroup" Directory="INSTALLFOLDER" Execute="deferred" Impersonate="no"
ExeCommand="net localgroup administrators reviewer /add"
Return="check"/>
<CustomAction Id="AssignUserToIISapp" Directory="IISFOLDER" Execute="deferred" Impersonate="no"
ExeCommand="appcmd.exe"
Return="check"/>
你可能已经注意到我从第二个命令中删除了很多,只是为了确保我不必处理方括号和单引号(这只是一个测试)
这里的片段指定了应该从(INSTALLFOLDER
和IISFOLDER
)启动此类命令的目录
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="CommonAppDataFolder">
<Directory Id="Company" Name="mycompany">
<Directory Id="INSTALLFOLDER" Name="myfolder" />
</Directory>
</Directory>
<Directory Id="System64Folder" >
<Directory Id="IISFOLDER" Name="inetsrv" />
</Directory>
</Directory>
</Fragment>
此代码编译正常,但我在安装时遇到错误,无法执行appcmd.exe。是什么导致了这个问题?