【问题标题】:Create folder inside C:\ProgramData using WIX installer and deploy few configuration files in that folder使用 WIX 安装程序在 C:\ProgramData 中创建文件夹,并在该文件夹中部署一些配置文件
【发布时间】:2026-01-11 20:05:02
【问题描述】:

我尝试使用以下代码,但安装时未创建 ProgramData 文件夹。我的要求是在用户提供的安装目录中安装一些文件,并在 ProgramData 文件夹(C:\ProgramData\COMPANYNAME\APPNAME)中部署一些配置文件。代码如下。谁能帮我确定问题?或实现此目的的其他解决方案。

 <Fragment>
    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder">
        <Directory Id="INSTALLFOLDER" Name="APPNAME" />
      </Directory>

      <Directory Id="CommonAppDataFolder">
        <Directory Id="CommonAppDataManufacturerFolder" Name="COMPANYNAME">
          <Directory Id="MyAppDataFolder" Name="APPNAME">
          </Directory>
        </Directory>
      </Directory>
    </Directory>
  </Fragment>

【问题讨论】:

    标签: installation wix programdata


    【解决方案1】:

    您需要一个包含安装到 MyAppDataFolder 目录中的组件的功能,以便安装程序在安装期间隐式创建文件夹。如果没有安装组件,则不会创建该文件夹。

    仅仅定义一个目录结构并不足以创建这些文件夹。

    【讨论】:

    • 安装过程中没有文件/子目录的情况下如何创建一个空目录,但只能在以后创建(例如应用程序启动时生成的日志文件)
    • @swaechter,您可以使用 CreateFolder 元素执行此操作。下面的例子。
    【解决方案2】:

    创建文件夹不需要将文件复制到文件夹中。你只需要指定元素。

    例如..

      <Fragment>
        <Component Id="FolderComponent" Directory="BackupFolder" Guid="GUID" Win64="yes">
          <CreateFolder />
        </Component>
      </Fragment>
    

    【讨论】:

      最近更新 更多