如何在 Wix 安装程序项目工具设置中定义自定义活页夹变量

How to define custom binder variables in Wix installer project tool settings

希望有人可以帮助解决这个 Wix 安装程序问题。我已经编辑了我的 Wix 项目 -> 工具设置 -> 附加参数 -> 链接器以包含以下自定义活页夹变量:

-dabcde=D:\pnh\Projects\WpfWix\WpfWix\bin\Debug

我可以在 'light' 命令行上看到此设置,但在解析此代码时 'abcde' 活页夹变量似乎不可用:

<Component Id="WpfWix.exe" Guid="{D498BDED-57E8-4FED-AE7F-3C8C63ADEAA2}" Directory="INSTALLFOLDER">
    <File Id="WpfWix.exe" KeyPath="yes" Source="!(bind.abcde)\WpfWix.exe" />
</Component>

“!(bind.abcde)...”占位符未替换为项目链接器工具设置中设置的值,我收到以下错误:

严重性代码说明项目文件行抑制状态 错误系统找不到文件 '!(bind.abcde)\WpfWix.exe'。 Installer_WpfWix D:\pnh\Projects\WpfWix\Installer_WpfWix\ApplicationFiles.wxs 6

我过去曾使用过这种定义自定义活页夹变量的方法,但我不确定在我的新项目中我缺少什么才能使它正常工作。

提前致谢, 彼得.

为了生成 light.exe 使用的 .wixobj 文件,candle.exe 使用的 .wxs 文件出现错误。换句话说,你必须在项目构建阶段传递参数,而不是在链接期间。

.wxs 源文件中,您应该能够访问您的 wpf 项目变量。在您的情况下,在 <Product ... > 之前添加以下行将指向您项目的调试目录:

<?define MyDirectory=$(var.WpfWix.TargetDir)?>

要获取可执行文件的路径,只需添加可执行文件名称即可

Source="$(var.MyDirectory)WpfWix.exe"