我们只需要在majorupgrade时复制文件。如果发生全新安装,则不应复制。
我试图找到File属性和组件属性,但是找不到它。
如何在主要升级时允许文件复制?
答案 0 :(得分:1)
您需要编写自定义操作来复制文件。
<CustomAction Id="QtExecCopyPropertyFileCmd" Property="QtExec64CmdLine" Value=""[SystemFolder]cmd.exe" /c copy "[INSTALL_DIR]\Test.txt" "[BKP_DIR]\Test.txt""/>
<CustomAction Id="QtExecCopyPropertyFile" BinaryKey="WixCA" DllEntry="CAQuietExec64" Execute="immediate" Return="check"/>
使用“升级”属性检查以前的安装程序是否已安装。
<Upgrade Id="{YOUR-GUID-HERE}">
<UpgradeVersion Property="PREVIOUSFOUND" Minimum="1.0.0" IncludeMinimum="yes" Maximum="$(var.Version)" IncludeMaximum="no" />
</Upgrade>
<Property Id="PREVIOUSFOUND" Secure="yes" />
在安装执行顺序中调用自定义操作。它将仅在升级中复制文件。
<Custom Action="QtExecCopyPropertyFileCmd" After="AppSearch">(NOT Installed) AND (PREVIOUSFOUND<>"")</Custom>
<Custom Action="QtExecCopyPropertyFile" After="QtExecCopyPropertyFileCmd">(NOT Installed) AND (PREVIOUSFOUND<>"")</Custom>
答案 1 :(得分:0)
您可以使用组件安装条件来检查现有产品,然后进行安装。您可以查看以下链接Wix Conditionally Install Component if Registry Key Exists以获取更多详细信息。还有一些文件搜索,你也可以进行注册表搜索