Для Bootstrapper элемент FileCheck не находит файл в 64-битной ОС в System32 - PullRequest
0 голосов
/ 09 февраля 2012

Привет! Я пытаюсь создать новый ускоритель из моего MSI, сгенерированного WiX. Я сделал одно, и это сработало, но теперь мне нужно сделать другое, где я проверяю версию файла в файле.

Согласно 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.

UPDATE Основанный на помощи Micheal и некотором тестировании, это проблема с перенаправлением файлов на 64-битных машинах и тегом FileCheck в загрузчике. Независимо от архитектуры мне нужно проверить Windows / System32 / wbem / cimwin32.dll

1 Ответ

1 голос
/ 14 февраля 2012

Хорошо.Я понял.Спасибо Майклу Урману за мозговой штурм.Это заставило меня задуматься о перенаправлении файлов в 64-битных ОС, чего я не знал.

Чтобы загрузчик получил доступ к 32-битному каталогу в 64-битной ОС, ему необходимо использовать псевдоним Sysnative для 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>
...