在WiX中将Zip文件添加到TARGETDIR

时间:2018-09-19 19:47:15

标签: wix wix3 wix3.11

在我的Visual Studio 2017解决方案中,我有一个WiX 3安装项目,该项目可以将输出引入其他几个项目(库,可执行文件,资产,内容)。在该解决方案的目录结构下,但未作为项目添加到解决方案中,我有一个项目可以使用webpack编译一些浏览器扩展。该webpack项目输出到带有每个浏览器子目录的工件文件夹。每个子目录中都有编译后的扩展名,文件名中包含版本号,例如:

  • 文物
    • Chrome
      • myextension-0.1.0.0.zip
      • myextension-0.1.0.1.zip
      • myextension-0.1.0.2.zip

在编译时,最终我希望将与版本号即myextension-\ $(var.VERSION).zip匹配的文件包含到MSI包中,以便在安装过程中将其放置到应用程序文件夹中。即使我将版本号(即myextension-0.1.0.2.zip)硬编码到组件中,我也会从light中得到一个错误:

HTTPS

我正在使用这样的定义获取目录:

on

然后我的组件看起来像这样:

LGHT0001: The system cannot find the path specified. (Exception from HRESULT: 0x80070003)

当我查看烛光创建的wixobj时,我看到了替换为系统上驻留文件的完整正确路径:

<?define ChromeTargetDir=$(var.SolutionDir)Extensions\artifacts\chrome\?>

所以我的问题是,在WiX项目中包括“任意”文件的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

1) 解决方案与项目目录 :我要尝试的第一件事是替换 {{1 }} $(var.SolutionDir) ,然后尝试重新编译。如果问题还有其他原因,我会继续进行。让我们先排除掉它。

$(var.ProjectDir) 行情 :我也在路径周围使用引号:

2)

<?define ChromeTargetDir="C:\Sources\Packages\MyChromeExtension\Files\" ?> 项目变量 :最后,您需要在项目中添加一个引用,以使项目引用和变量起作用: WiX: How to use relative path to SolutionDir


晦涩 :更晦涩的原因可能是缺少访问权限(构建过程和light.exe无法看到文件-模拟运行? )。 损坏的文件或文件夹? (尝试更换)。还有其他可能合谋反对您的事情。 锁定文件?