安装前存在WiX检查文件

时间:2011-06-29 10:21:23

标签: wix

我已经多次看过这个问题但是没有一个答案似乎对我有用。我显然缺少一些基本的东西,但我似乎无法找出它是什么!我只使用了几天的WiX,所以我还是很新的。

基本上,我已经为现有产品构建了一个插件,我想在允许插件安装之前检查产品是否已安装。我认为最简单的方法是检查主要可执行文件是否在正确的目录中。

到目前为止我的相关代码:

<Property Id="FILEEXISTS">
  <DirectorySearch Id="CheckFileDir" Path="INSTALLDIR" Depth="0">
    <FileSearch Id="CheckFile" Name="main.exe" />
  </DirectorySearch>
</Property>

<Condition Message="File does exist.">NOT FILEEXISTS</Condition>

其中INSTALLDIR是main.exe所在目录的Id,并在嵌套的Directory标记中定义。

2 个答案:

答案 0 :(得分:5)

在用户可以通过MSI对话框设置安装文件夹之前执行搜索。所以这种方法不会按照你想要的方式运作。

如果要检查安装文件夹中的文件,我建议通过DoAction控件事件执行UI自定义操作。可以通过文件夹选择对话框中的“下一步”按钮触发此事件。

此处没有预定义的自定义操作,因此您需要使用自定义代码编写一个。它应该是一个接收安装句柄的DLL或VBScript。您可以在此处找到一个小教程:http://www.codeproject.com/KB/install/msicustomaction.aspx

答案 1 :(得分:1)

我想你错过了@Path中INSTALLDIR周围的方括号[]。另外,@ Depth = 0看起来很可疑,只是省略了普通搜索的这个属性,它应该默认为1,这就是你通常需要在目录中查找文件。

希望有所帮助,但要严格,你的问题不包含真正的问题。很难理解你是否收到任何错误,或者条件不起作用......