回避策を見つける必要がある特別な状況があります。32 ビット アプリケーション用の wix インストーラーがありますが、32/64 ビットの Windows バージョンに関係なく、"Program Files" フォルダーの下の固定された場所に配置する必要がある Office ドキュメント ファイルに依存しています。XP の時代から存在するアプリの下位互換性を維持するために、その場所を変更できないことを少しの間受け入れてください。「Program Files (x86)」フォルダーにアプリをインストールし、「Program Files」に存在する必要があるこのファイルを配信する必要があります。可能であれば、それらを 2 つのインストーラーに分割したくありません。これを機能させる方法を知っている人はいますか?
2077 次
2 に答える
1
ディレクトリ定義に「ProgramFiles64Folder」を含め、そのディレクトリを、64ビットの場所に移動する必要があるコンポーネントのディレクトリとして使用できるはずです。
1 つのコンポーネントが 64 ビット マシンの「C:\Programs Files」にインストールされ、もう 1 つのコンポーネントが 32 ビット マシンの「C:\Programs Files」にインストールされる、同じファイルを複製する 2 つのコンポーネントを含める必要がある可能性があります。ビットマシン。
私はいくつかのsnmp関連ファイルでこのようなことをします。私が意味することの例:
<ComponentGroup Id="Files_32" Directory="OfficeProgramFilesFolder">
<Component Id="SomeFile.dll_32" >
<Condition>NOT VersionNT64</Condition>
<File Id="SomeFile.dll_32" KeyPath="yes" Source="$(var.BinariesDir)\_bin\Win32\SomeFile.dll" />
</Component>
</ComponentGroup>
<ComponentGroup Id="Files_64" Directory="OfficeProgramFiles64Folder">
<Component Id="SomeFile.dll_64" Win64="yes">
<Condition>VersionNT64</Condition>
<File Id="SomeFile.dll_64" KeyPath="yes" Source="$(var.BinariesDir)\_bin\x64\SomeFile.dll" />
</Component>
</ComponentGroup>
これにより、32 ビットまたは 64 ビットのマシンに関係なく、ファイルが「C:\Program Files」にインストールされます。
ファイルが 64 ビット コンポーネントと 32 ビット コンポーネントでまったく同じである場合、ICE 警告が表示されますが、これらは相互に排他的であるため問題ありません。
于 2016-09-29T21:12:02.177 に答える