1
У меня есть WiX msi, который содержится в пакете Burn, скомпилированном для x86. В MSI У меня есть этот код:
<?if $(var.Platform) = x64 ?>
<?define PlatformProgramFilesFolder = "ProgramFiles64Folder" ?>
<?else ?>
<?define PlatformProgramFilesFolder = "ProgramFilesFolder" ?>
<?endif?>
<!-- directory structures -->
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="$(var.PlatformProgramFilesFolder)">
<Directory Id="INSTALLFOLDER" Name="MyApp">
<Directory Id="MyFolder" Name="MyFolder" />
</Directory>
</Directory>
</Directory>
</Fragment>
<Fragment>
<ComponentGroup Id="MyComponents" Directory="MyFolder">
<Component Id="MyComponent">
<File Id="MyFile" Source="file.dat" Vital="yes" KeyPath="yes"/>
</Component>
</ComponentGroup>
</Fragment>
Я бы ожидать, чтобы это установить в папку Program Files
на 64-битной системе, но это установка на Program Files (x86)
. Это потому, что пакет работает как 32-битный? Как проверить фактическую архитектуру ОС в MSI, если это так?
Я сталкиваюсь с той же проблемой, и я передаю -arch x64 бит в свечу, но все равно это не сработает! Как вы это разрешили? – Nikhil