0

您好我正在尝试从我的 WiX 生成的 MSI 创建一个新的助推器。我已经完成了一个并且它有效,但现在我需要做另一个检查文件上的文件版本。

根据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

4

1 回答 1

1

好的。我得到了它。感谢 Michael Urman 与我进行头脑风暴。它让我想到了我不知道发生的 64 位操作系统上的文件重定向。

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

更多信息

所以我刚刚创建了另一个文件检查。一个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>
于 2012-02-14T14:59:47.650 回答