我正在使用 Wix 3.6 创 build 置。我还在继续学习。外面的信息还是散落一地。我只是在等待我的 Wix 开发人员指南书到货。

我目前有一个自定义 UI 对话框,用户可以在其中输入一些应用程序配置。该配置的一部分是指定日志文件夹。目前这只是设置一个属性 [LogFolder]。这默认为类似 D:\Logs 的内容。

我希望安装程序在运行安装程序时创建该目录。我有以下尝试执行此操作,但它只是在运行安装程序时在 D: 驱动器上创建了一个名为 [LOGFOLDER] 的文件夹。

<Product ...
    <Directory Id="TARGETDIR" Name="SourceDir" >
        <Directory Id="LogFolderDir" Name="[LOGFOLDER]" >
            <Component Id="LogFolderComponent" Guid="{7E7D6916-B321-40D6-ABAD-696B57A6E5FB}" KeyPath="yes">
                <CreateFolder />
            </Component>
        </Directory>
    </Directory>
    ...
</Product>

我怎样才能用 Wix 做到这一点?

最佳答案

第一步是创建一个属性设置为您想要的值:

<Product>
  <Property Id="LOGFOLDER" Value="D:\Logs" />
</Product>

第二步是创建一个对话框,您可以在其中设置此属性(或其他更改其值的内容):
<Dialog>
  <Control Id="Edit_LogFolder" Type="Edit" Property="LOGFOLDER" />
</Dialog>

然后您需要更改目录结构以在默认位置创建此文件夹:
<Directory Id="ProgramFilesFolder">
  <Directory Id="INSTALLFOLDER" Name="MyApp">

    <Directory Id="LOGFOLDER" Name="Logs" />

  </Directory>
</Directory>

最后一步是创建一个将创建目录的组件,如下所示:
<ComponentGroup Id="ComponentGroup_LogFolder">
  <Component Id="Component_LogFolder" Guid="" Directory="LOGFOLDER">

    <CreateFolder Directory="LOGFOLDER" />

  </Component>
</ComponentGroup>

备注:

如果 D:\是磁盘驱动器并且您插入了磁盘,则安装将失败,因为它会尝试创建文件夹并且不会成功。

关于installation - Wix 安装程序 - 基于属性创建文件夹层次结构,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12478566/

10-13 07:57
查看更多