WIX:将文件复制到另一个分区中的自定义目录

标签 wix windows-installer

我需要将应用程序的文件安装到常用位置,例如 C:\Program Files\MyApp
并且还需要将其中几个复制到另一个分区的自定义文件夹中
(假设D:\CustomFolder,允许对其进行硬编码)。

安装应该是静默的 - 没有 GUI 或向导。而且所有内容都应该位于一个 *.msi 文件中。

我可以通过 CustomActions 来做到这一点,但优雅的声明方式更好。

以前有人尝试过吗?
谢谢。

更新: 忘记提及,允许应位于单独分区上的文件位于 C:\Program Files\MyApp

最佳答案

已解决。做法是:

  1. 指定应放置文件的自定义文件夹:

    <Property Id="MY_CUSTOM_DESTINATION" Value="D:\MyCustomFolder" />

  2. 输入 <Copy ..>指令进入<File ...>应该复制的内容

<DirectoryRef Id="MyAppFolderThatIsInProgramFiles">
     <Component Id="MyComponent" Guid="some_guid">
      <File Id="MyFileXml" Source="MyFile.xml" KeyPath="yes" >
          <CopyFile Id="Copy_MyFileXml" DestinationProperty="MY_CUSTOM_DESTINATION"/>
      </File>
     </Component>
</DirectoryRef>

附:作为副作用,<File Id="MyFileXml" ... /> 中指定的文件将被放入两个位置:C:\Program Files\MyAppD:\MyCustomFolder ,但这对于我的任务来说是正确的。

关于WIX:将文件复制到另一个分区中的自定义目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9902980/

相关文章:

.net - System.AddIn 管道应该安装在哪里?

wix - 带子文件夹的开始菜单

wix - "source is an admin image"是什么意思?

wix - 刻录:在未安装 Dot Net Framework 4 的情况下运行托管 Bootstrap

windows-installer - InnoSetup MsiQueryProductState

Wix 检测 bundle 中的 .NET 4.5.2

C# Windows 如何在检测到 .Net 版本后运行 exe

winforms - 安装包中的桌面图标 - Windows 安装包

c# - 未经授权的访问异常 : Access to the path is denied

.net - 如果/QUIET 参数用于抑制 UI,则 MSIEXEC 不会安装 MSI 设置