0

こんにちは、WiX で生成された MSI から新しいブーストラップを作成しようとしています。私は1つを実行して機能しましたが、ファイルのファイルバージョンを確認する別の操作を行う必要があります。

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 OS で発生しています。

更新 Micheal の助けといくつかのテストに基づいて、これは 64 ビット マシンのファイル リダイレクトとブートストラップの FileCheck タグに問題があります。アーキテクチャに関係なく、Windows/System32/wbem/cimwin32.dll を確認する必要があります

4

1 に答える 1

1

大丈夫。わかった。ブレーンストーミングをしてくれたMichaelUrmanに感謝します。何が起こったのか知らなかった64ビットOSでのファイルリダイレクトについて考えさせられました。

ブートストラッパーが64ビットOS上の32ビットディレクトリにアクセスするには、System32のエイリアスSysnativeを使用する必要があります。

より詳しい情報

そこで、別のファイルチェックを作成しました。1つは32用、もう1つは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 に答える