使用Wix 3.5创建安装根目录之外的文件夹

4

我应该如何使用Wix v3.5在我的普通安装路径之外创建文件夹?

以下是为我的根目录安装创建的文件夹。

<Directory Id="TARGETDIR" Name="SourceDir">

  <Directory Id="INSTALLLOCATION" Name="FolderName">

  </Directory>
 </Directory>

例如,如果用户选择 c:,则将安装到 c:\FolderName。

我需要在 C: 中创建其他文件夹。我该如何实现?

干杯!

1个回答

6

没有任何限制阻止您在INSTALLLOCATION旁边定义另一个Directory元素。确保适当的组件引用该文件夹,您最终将在那里拥有必要的文件:

<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="INSTALLLOCATION" Name="FolderName">
   ...
  </Directory>
  <Directory Id="ANOTHERLOCATION" Name="SecondFolderName">
   ...
  </Directory>
</Directory>

更新:下面添加了一个带有CreateFolder元素的示例。
<DirectoryRef Id="ANOTHERLOCATION">
  <Component Id="comp1" Guid="GUID-HERE" KeyPath="yes">
    <CreateFolder />
  </Component>
</Directory>

如果您想创建空文件夹,您需要为每个文件夹编写一个组件,并将其放置在所需的文件夹下,并编写一个<CreateFolder/>元素,否则该文件夹将不会被创建。 - Yan Sklyarenko
如何将路径值分配给ANOTHERLOCATION,例如如果我想让它成为D:\ MyFolder1 \ MyFolder2 - Mykhailo Seniutovych
@MykhailoSeniutovych,就像任何其他属性一样:msiexec.exe /i "C:\Example.msi" ANOTHERLOCATION="D:\MyFolder1\MyFolder2" - Yan Sklyarenko
我能通过代码实现吗?如果这是一个属性,我会这样做: <Property Id="ORDERSFOLDER" Value="D:\MyFolder1\MyFolder2" /> - Mykhailo Seniutovych
如果我没记错的话,你可以在<SetProperty ... After="CostFinalize">中实现,但是我已经有一段时间没有使用Windows Installer了。你可以试一下,不要只是相信建议 :) https://msdn.microsoft.com/zh-cn/library/windows/desktop/aa372403(v=vs.85).aspx - Yan Sklyarenko
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接