我需要在常规安装文件夹(即c:\program \mycompany\myapp)中安装文件,但我也需要将文件复制到windows文件夹中的一个子文件夹中,即c:\windows\my文件夹。
虽然我对“安装”文件夹没有问题,但我不知道如何在c:\windows中创建子文件夹?
有什么想法吗?
谢谢。
蒂埃里
更新:
我可能应该更精确一点,并提供更多的信息。这是我拥有的xml:
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="MyCompany">
<Directory Id="ClientFolder" Name="Client">
</Directory>
<Directory Id="ServerFolder" Name="Server">
</Directory>
</Directory>
</Directory>
</Directory>
<Directory Id="WindowsFolder" Name="WindowsFolder">
<Directory Id="MyFolder" Name="MyFolder"></Directory>
</Directory>
</Fragment>当我试图编译我的wix项目时,我会得到以下错误:
Error 1 : The Directory with Id 'WindowsFolder' is not a valid root directory.
There may only be a single root directory per product or module and its Id attribute
value must be 'TARGETDIR' and its Name attribute value must be 'SourceDir'PS:我是新来的,我正在读一本关于如何使用Wix的书,但是我需要尽快的,所以请耐心地对待我:)。谢谢。
发布于 2014-06-04 14:51:18
您可以基于系统文件夹属性创建目录元素。特别是WindowsFolder性质。然后为文件夹创建子目录元素。
在这样做之前,您应该有非常充分的理由,因为这是一个操作系统领域。我通常会告诉开发人员,除非他们有一个非常非常好的理由。
发布于 2014-06-05 01:38:41
硬币掉了!!
需要将目录引用直接添加到
<Directory Id="TARGETDIR" Name="SourceDir">还有你的其他目录。你最终会有这样的结果
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="MyApp">
<Directory Id="ClientFolder" Name="Client"/>
</Directory>
</Directory>
<Directory Id="WindowsFolder">
<Directory Id="MyFolder" Name="MyFolder"/>
</Directory>
</Directory>如果WindowsFolder将告诉安装程序使用"windows“文件夹并使用其中的子文件夹,只需将目录ComponentGroup (或其他文件夹)设置为MyFolder即可。
<ComponentGroup Id="MyFolderComponents" Directory="MyFolder">
..
..
</ComponentGroup>发布于 2014-06-04 14:51:07
您的常规安装文件夹基于一棵具有ProgramFilesFolder的树,然后是您的子文件夹名。使用标准Windows Installer属性对Windows文件夹执行相同的操作:
Windows文件夹
其中之一就是:
属性参考
https://stackoverflow.com/questions/24040467
复制相似问题