如何使用 wix 3.8 安装程序在 windows 文件夹中创建文件夹
Posted
技术标签:
【中文标题】如何使用 wix 3.8 安装程序在 windows 文件夹中创建文件夹【英文标题】:How to create a folder in the windows folder using wix 3.8 installer 【发布时间】:2014-06-04 14:38:58 【问题描述】:我需要在常规安装文件夹(即 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 的书,但我需要这个,所以请耐心等待我 :)。谢谢。
【问题讨论】:
您只能有 1 个根文件夹... TARGETDIR。所有其他文件夹都必须是子文件夹。 WF 应该是 PFF 的兄弟。 @ChristopherPainter ...我刚刚回答了我自己的问题,但您的评论正是我所缺少的!谢谢。 【参考方案1】:您根据System Folder Properties 创建目录元素。特别是WindowsFolder property。然后为您的文件夹创建一个子目录元素。
在执行此操作之前,您应该有非常充分的理由,因为这是一个操作系统领域。我通常会告诉开发人员不,除非他们有非常非常好的理由。
【讨论】:
我也不喜欢它,但这是我们与我们的软件一起使用的第三方工具的要求。【参考方案2】:一分钱掉了!!
需要在下面直接添加目录引用
<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>
【讨论】:
【参考方案3】:您的常规安装文件夹基于一棵树,该树将在某处具有 ProgramFilesFolder,然后是您的子文件夹名称。使用标准 Windows Installer 属性对 Windows 文件夹执行相同操作:
Windows Folder
这是其中之一:
Property Reference
【讨论】:
我不确定你在说什么。我已经添加了我项目中的 xml。以上是关于如何使用 wix 3.8 安装程序在 windows 文件夹中创建文件夹的主要内容,如果未能解决你的问题,请参考以下文章
WiX 3.8安装IIS Express和SQL Server LocalDB 2012
如何在非 Windows 操作系统的 WiX 安装程序中获取操作系统名称?