我需要在常规安装文件夹中安装文件(即c:\ program files \ mycompany \ myapp),但我还需要将文件复制到位于windows文件夹中的子文件夹,即c:\ windows \ myfolder。
虽然我对"安装"没有问题。文件夹,我看不到如何在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的书,但我需要这个,所以请耐心等待我:)。谢谢。
答案 0 :(得分:1)
您可以根据System Folder Properties创建目录元素。特别是WindowsFolder property。然后为您的文件夹创建一个子目录元素。
在执行此操作之前,您应该有很强的理由,因为这是一个操作系统区域。除非他们有非常非常好的理由,否则我通常会告诉开发人员。
答案 1 :(得分:1)
便士掉了!!
您需要直接在
下添加目录引用<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会告诉安装人员使用&#34; windows&#34;文件夹和使用其中的子文件夹,只需将您的ComponentGroup(或其他)的目录设置为MyFolder,即
<ComponentGroup Id="MyFolderComponents" Directory="MyFolder">
..
..
</ComponentGroup>
答案 2 :(得分:0)
您的常规安装文件夹基于一个将在某处具有ProgramFilesFolder的树,然后是您的子文件夹名称。您使用标准Windows Installer属性对Windows文件夹执行相同的操作:
这是其中之一: