Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wix util:RegistrySearch变量能否与ExePackage';烧录中的源文件是什么?_Wix_Bootstrapper_Burn - Fatal编程技术网

Wix util:RegistrySearch变量能否与ExePackage';烧录中的源文件是什么?

Wix util:RegistrySearch变量能否与ExePackage';烧录中的源文件是什么?,wix,bootstrapper,burn,Wix,Bootstrapper,Burn,我正在开发的程序需要OBS Studio和其他依赖项才能正常运行。为了方便起见,我正在构建一个Burn bundle,它将在安装主应用程序之前以正确的顺序安装每个依赖项 卸载是一个问题。OBS有自己的卸载可执行文件,告诉Burn该可执行文件在哪里已被证明是不可能的。安装目录在注册表中清晰可读(OBS将安装目录存储为注册表项的默认值): 但我无法将该变量放入ExePackage的源文件中,该文件将在卸载期间使用它。以下代码在我的尝试中失败: <ExePackage Id="Uninsta

我正在开发的程序需要OBS Studio和其他依赖项才能正常运行。为了方便起见,我正在构建一个Burn bundle,它将在安装主应用程序之前以正确的顺序安装每个依赖项

卸载是一个问题。OBS有自己的卸载可执行文件,告诉Burn该可执行文件在哪里已被证明是不可能的。安装目录在注册表中清晰可读(OBS将安装目录存储为注册表项的默认值):


但我无法将该变量放入ExePackage的源文件中,该文件将在卸载期间使用它。以下代码在我的尝试中失败:

<ExePackage Id="Uninstall_OBSStudio"
 SourceFile="!(wix.OBS)\uninstall.exe"
 DetectCondition="NOT OBS_exists"
 Cache="no"
 Compressed="no" />

将变量作为“[OBS]”传递也失败,被读取为文本字符串。在条件中使用该变量可以毫无问题地工作,但这一点也不会发生。我甚至还尝试将值传递给WixVariable:

<WixVariable Id="OBS_location" Value="[OBS]" />

无济于事。到目前为止,似乎util:RegistrySearch被锁定在Burn的某些部分之外,原因我不明白

在SourceFile字符串中使用RegistrySearch变量应该怎么做?我在格式化数据方面所做的任何工作都不起作用。刻录甚至可以像我尝试的那样传递数据吗?是否有更好的方法从注册表中提取有关刻录链的信息


我真的希望这只是一个句法问题。提前感谢您提供的任何指导。

否。所有包类型的源文件都在您构建包时解析。在运行时,Burn将对文件进行散列,以确保其运行的文件与编译时指定的文件相同

这里的某个地方有一个功能请求,可能是创建安装程序的安装框架的新包类型,也可能是ExePackage从注册表获取卸载命令的能力

<WixVariable Id="OBS_location" Value="[OBS]" />