WiX新手问题:我该怎么办
1. 将一次性 shell 脚本与安装程序一起复制到 temp
e.g.
<Binary Id='permissions.cmd' src='permissions.cmd'/>
2. 在安装结束时找到并运行该脚本。
e.g.
<CustomAction Id='SetFolderPermissions' BinaryKey='permissions.cmd'
ExeCommand='permissions.cmd' Return='ignore'/>
<InstallExecuteSequence>
<Custom Action="SetFolderPermissions" Sequence='1'/>
</InstallExecuteSequence>
我认为我至少存在三个问题:
- 我找不到权限.cmd运行它 - 我需要吗[TEMPDIR]权限.cmd或者其他的东西?
- My Sequence来得太快了,在程序安装之前。
- I need cmd /c 权限.cmd在这里的某个地方,可能在附近执行命令?
在这个例子中权限.cmd uses cacls.exe添加具有写权限的交互式用户%ProgramFiles%\供应商前交叉韧带。我也可以使用安全对象- 这个问题是“如何将交互式用户添加到本地化 Windows 中的目录”? https://stackoverflow.com/questions/170140/how-do-i-add-the-interactive-user-to-a-directory-in-a-localized-windows
这是一个工作示例(用于设置权限,而不是运行脚本):
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder" Name="PFiles">
<Directory Id="BaseDir" Name="MyCo">
<Directory Id="INSTALLDIR" Name="MyApp" LongName="MyProd">
<!-- Create the folder, so that ACLs can be set to NetworkService -->
<Component Id="TheDestFolder" Guid="{333374B0-FFFF-4F9F-8CB1-D9737F658D51}"
DiskId="1" KeyPath="yes">
<CreateFolder Directory="INSTALLDIR">
<Permission User="NetworkService"
Extended="yes"
Delete="yes"
GenericAll="yes">
</Permission>
</CreateFolder>
</Component>
</Directory>
</Directory>
</Directory>
</Directory>
请注意,这是在 Permission 标记中使用“Extended=”Yes”,因此它使用的是 SecureObjects 表和自定义操作,而不是 LockPermissions 表(请参阅权限元素的 WiX 文档 http://wix.sourceforge.net/manual-wix2/wix_xsd_permission.htm)。在此示例中,SecureObjects 应用于 MyProd 目录的权限由子目录继承,而使用 LockPermissions 时情况并非如此。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)