如何在主要升级时复制文件?

时间:2013-06-03 13:12:56

标签: wix wix3.5

我们只需要在majorupgrade时复制文件。如果发生全新安装,则不应复制。

我试图找到File属性和组件属性,但是找不到它。

如何在主要升级时允许文件复制?

2 个答案:

答案 0 :(得分:1)

您需要编写自定义操作来复制文件。

<CustomAction Id="QtExecCopyPropertyFileCmd" Property="QtExec64CmdLine" Value="&quot;[SystemFolder]cmd.exe&quot; /c copy &quot;[INSTALL_DIR]\Test.txt&quot; &quot;[BKP_DIR]\Test.txt&quot;"/>
<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&lt;&gt;"")</Custom>
 <Custom Action="QtExecCopyPropertyFile" After="QtExecCopyPropertyFileCmd">(NOT Installed) AND (PREVIOUSFOUND&lt;&gt;"")</Custom>

答案 1 :(得分:0)

您可以使用组件安装条件来检查现有产品,然后进行安装。您可以查看以下链接Wix Conditionally Install Component if Registry Key Exists以获取更多详细信息。还有一些文件搜索,你也可以进行注册表搜索