对于Bootstrapper,FileCheck元素未在System32中的64位OS上查找文件

时间:2012-02-09 16:02:01

标签: installer installation wix windows-installer bootstrapper

您好我正在尝试从我的WiX生成的MSI创建一个新的boostrapper。我已经做了一个并且它工作但现在我需要做另一个我检查文件上的文件版本。

根据MSDN我应该使用FileCheck元素。

  <InstallChecks>
    <FileCheck Property="VersionDll" FileName="cimwin32.dll" SearchPath="wbem" SpecialFolder="SystemFolder"/>
  </InstallChecks>

但它对我不起作用。

生成的日志显示:

Running check with folder 'C:\Windows\System32\wbem' and file 'cimwin32.dll'
Attempting to find file 'C:\Windows\System32\wbem\cimwin32.dll'
Could not find file 'cimwin32.dll' in folder 'C:\Windows\System32\wbem'
Not setting value for property 'VersionDll'

即使日志文件中列出的路径正确!很混乱。任何帮助将不胜感激

我不确定这是否重要,但我在64位Windows 7操作系统上看到了这一点。

更新 基于Micheal的帮助和一些测试,这是64位机器上的文件重定向和引导程序中的FileCheck标记的问题。无论架构如何,我都需要检查Windows / System32 / wbem / cimwin32.dll

1 个答案:

答案 0 :(得分:1)

好的。我知道了。感谢Michael Urman和我一起集思广益。它让我想到64位操作系统上的文件重定向,我不知道发生了什么。

要让引导程序访问64位操作系统上的32位目录,需要使用别名Sysnative for System32

More info

所以我刚刚创建了另一个文件检查。一个用于32,一个用于64,我正在运行。

<InstallChecks>
    <FileCheck Property="VersionDll" FileName="cimwin32.dll" SearchPath="System32\wbem" SpecialFolder="WindowsFolder" />
    <FileCheck Property="VersionDll64bit" FileName="cimwin32.dll" SearchPath="Sysnative\wbem" SpecialFolder="WindowsFolder" />
</InstallChecks>