【发布时间】:2015-08-14 19:27:56
【问题描述】:
我正在尝试将一些文件添加到我通过 RegistrySearch 找到的目录中。我相信我的 RegistrySearch 是正确的:
<Property Id="IISROOT">
<RegistrySearch Id="IIS_RegDir"
Type="directory"
Root="HKLM"
Key="Software\Microsoft\InetStp"
Name="PathWWWRoot" />
</Property>
我想使用 IISROOT 属性作为对应该添加文件的目录的引用。
<DirectoryRef Id="IISROOT">
<Component Id="cmp_testBAT" Guid="">
<File Id="fil_testBAT" KeyPath="yes" Source="$(var.myDir)\test.bat" />
</Component>
</DirectoryRef>
我知道这行不通,因为如果我想使用 DirectoryRef,我需要一个 Directory,但我的问题是设置一个 Directory 元素以包含 RegistrySearch 结果的目录。
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="IISROOT" Name/SourceName/FileSource="?"/>
<!-- ... -->
</Directory>
根据我的阅读,我应该只使用 Name 如果目录不存在,并且其他源属性已被弃用,所以(据我所知),我需要使用 SourceName 或FileSource。我都试过了,引用IISROOT,带方括号和不带方括号,并更改属性和目录名称以查看它们是否相同或不同,但结果始终是文件已创建在C:。我也尝试过使用Name=".",但这并没有改变任何东西。日志总是只说IISROOT 目录元素设置为C:\,但不要说我的属性是否设置正确(通过检查 RegEdit,我认为它是正确的,但我不能 100% 确定)。
我看到有人问过类似的问题,但回答通常是我目前的实现。如何将我的 Directory 元素设置为 RegistrySearch 的结果?
【问题讨论】:
标签: xml wix windows-installer