文件未使用WIX和WAX复制到安装目录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件未使用WIX和WAX复制到安装目录相关的知识,希望对你有一定的参考价值。

我有一些额外的非托管DLL需要复制到安装文件夹。我正在使用WAX以及它应该使Wix更容易使用。我已将以下标记添加到Product.wxs:

  <Component Id="DataModel1.csdl" Guid="f8fb154d-f0c9-40f5-9bcf-593ed9540bda" Directory="INSTALLFOLDER">
    <File Id="DataModel1.csdl" Name="DataModel1.csdl" Source="$(var.FLIR_TargetDir)DataModel1.csdl" />
  </Component>

  <Component Id="DataModel1.ssdl" Guid="a13c3c3b-e6a6-40ea-b9d8-84fd093ca0d5" Directory="INSTALLFOLDER">
    <File Id="DataModel1.ssdl" Name="DataModel1.ssdl" Source="$(var.FLIR_TargetDir)DataModel1.ssdl" />
  </Component>

  <Component Id="DataModel1.msl" Guid="e308d75b-1f0b-4234-843d-6b44af2e80a9" Directory="INSTALLFOLDER">
    <File Id="DataModel1.msl" Name="DataModel1.msl" Source="$(var.FLIR_TargetDir)" />
  </Component>

  <Component Id="Devart.Data.dll" Guid="a95a3053-7d4a-4030-b8c9-9d860a81a221" Directory="INSTALLFOLDER">
    <File Id="Devart.Data.dll" Name="Devart.Data.dll" Assembly=".net" KeyPath="yes"  Source="C:Program Files (x86)DevartdotConnectSQLiteDevart.Data.dll" />
  </Component>

  <Component Id="Devart.Data.SQLite.dll" Guid="16d0ca3c-425d-49e9-a754-043b0b9e4ada" Directory="INSTALLFOLDER">
  <File Id="Devart.Data.SQLite.dll" Name="Devart.Data.SQLite.dll" Assembly=".net" KeyPath="yes"  Source="C:Program Files (x86)DevartdotConnectSQLiteDevart.Data.SQLite.dll" />
</Component>

这些文件在UI的未映射文件区域中显示为未映射的文件:

Wax UI

安装发生时,文件不会安装到安装文件夹中。我究竟做错了什么?

答案

Assembly =“.NET”告诉MSI在全局程序集缓存中安装文件。忽略/覆盖父目录元素。看到:

http://wixtoolset.org/documentation/manual/v3/xsd/wix/file.html

如果您正在寻找一种工具来使WiX更容易学习/使用,那么我建议我自己的开源项目:

https://github.com/iswix-llc/iswix-tutorials

以上是关于文件未使用WIX和WAX复制到安装目录的主要内容,如果未能解决你的问题,请参考以下文章

未解决的对“片段”部分中的符号“”的引用

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

Wix XmlFile 元素执行得太早

WIX安装项目未完全卸载应用程序

参数未传递给 WiX 中的延迟自定义操作

使用 WiX 中的在线设置安装 .NET 框架