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:默认情况下,如何在“重新安装=全部”中安装创建的修补程序?_Wix_Wix3.5 - Fatal编程技术网

WiX:默认情况下,如何在“重新安装=全部”中安装创建的修补程序?

WiX:默认情况下,如何在“重新安装=全部”中安装创建的修补程序?,wix,wix3.5,Wix,Wix3.5,我已经使用wix工具生成了一个patch.msp文件,当我使用以下命令通过命令行安装它时,我的应用程序的所有组件都会得到更新 通过命令行安装patch.msp文件非常完美 msiexec.exe /p patch.msp /l*vx patch.log /qb REINSTALL=ALL REINSTALLMODE=omusa 但是当用户使用Windows Explore安装patch.msp文件时(基本上是双击该文件)。它安装得很好(没有生成错误,也会显示在已安装的更新中),但我的DLL和.

我已经使用wix工具生成了一个patch.msp文件,当我使用以下命令通过命令行安装它时,我的应用程序的所有组件都会得到更新

通过命令行安装patch.msp文件非常完美

msiexec.exe /p patch.msp /l*vx patch.log /qb REINSTALL=ALL REINSTALLMODE=omusa
但是当用户使用Windows Explore安装patch.msp文件时(基本上是双击该文件)。它安装得很好(没有生成错误,也会显示在已安装的更新中),但我的DLL和.exe文件不会更新。

那么,如何使用
重新安装=ALL
进行此安装?是否有可以添加到patch.wxs文件的命令

提前谢谢

编辑

<CustomAction Id="PatchInstall" Property="PATCH" Value="REINSTALL" />
<InstallExecuteSequence>
  <Custom Action="PatchInstall" Before="InstallInitialize">REINSTALL="ALL"</Custom>
</InstallExecuteSequence>
因此,我将更新文件版本并重新运行测试

最终更新
好的,只是确认这是一个文件版本问题!只要更新文件版本,MSP就可以安装得很好,没有问题。

如果正在安装修补程序,您可以尝试将
重新安装
属性设置为
全部

因此,您需要修改新包并添加一个新的自定义操作,该操作会根据属性更改
重新安装

编辑:您希望自定义操作以这种方式工作:

if (PATCH) {
    REINSTALL = "ALL";
}
因此,在WiX中,它看起来是:

<CustomAction Id="PatchInstall" Property="REINSTALL" Value="ALL" />
<InstallExecuteSequence>
    <Custom Action="PatchInstall" Before="InstallInitialize">PATCH</Custom>
</InstallExecuteSequence>

补丁

如果正在安装修补程序,您可以尝试将
重新安装
属性设置为
全部

因此,您需要修改新包并添加一个新的自定义操作,该操作会根据属性更改
重新安装

编辑:您希望自定义操作以这种方式工作:

if (PATCH) {
    REINSTALL = "ALL";
}
因此,在WiX中,它看起来是:

<CustomAction Id="PatchInstall" Property="REINSTALL" Value="ALL" />
<InstallExecuteSequence>
    <Custom Action="PatchInstall" Before="InstallInitialize">PATCH</Custom>
</InstallExecuteSequence>

补丁

好的,谢谢你回复我,我会尝试一下,然后回复给你。正如你所建议的,我已经添加了一个自定义操作,其中包含
重新安装
它没有给我想要的结果,请你看看我的设置是否正确?thanks@superbDeveloper相反,您的自定义操作在伪C代码中执行以下操作:
if(REINSTALL==“ALL”){PATCH=“REINSTALL”}
。我已经在我的答案中添加了正确的代码。我最终测试了它,但它不起作用,但我发现了问题,它与文件版本有关。谢谢你的帮助。好的,谢谢你回复我,我会尝试一下,然后回复给你。正如你所建议的,我已经添加了一个自定义操作,带有
重新安装
它没有给我想要的结果,请你看看我的设置是否正确?thanks@superbDeveloper相反,您的自定义操作在伪C代码中执行以下操作:
if(REINSTALL==“ALL”){PATCH=“REINSTALL”}
。我已经在我的答案中添加了正确的代码。我最终测试了它,但它不起作用,但我发现了问题,它与文件版本有关。感谢您的善意协助。好的,请确认这是一个文件版本问题!只要更新文件版本,MSP安装就可以了,没有问题。好的,请确认这是一个文件版本控制问题!只要更新文件版本,MSP就可以安装得很好,没有问题。