Я создал MSI с помощью установщика WIx, и его место установки по умолчанию отображается как программные файлы вместо программных файлов (x86) Поскольку "ProgramFiles64Folder" дает, он должен go в Program Files (x86), я что-то пропустил
Пример ниже, убедитесь, что ваш компонент отмечен как 64-битный:
Конструкция: $(env.SystemRoot) - в приведенном ниже источнике WiX - получает переменную среды %SystemRoot% - который разрешается в C:\ в большинстве систем (для вывода списка переменных среды откройте cmd.exe, введите set и нажмите Enter). Следовательно, приведенный ниже источник должен компилироваться во всех системах без изменений:
$(env.SystemRoot)
%SystemRoot%
C:\
cmd.exe
set
Enter
<?xml version="1.0" encoding="UTF-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <Product Id="*" Name="Sample" Language="1033" Version="1.0.0" Manufacturer="." UpgradeCode="PUT-GUID-HERE"> <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" Platform="x64" /> <MediaTemplate EmbedCab="yes" /> <Feature Id="MainFeature" Title="MainFeature" Level="1" /> <Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="ProgramFiles64Folder"> <Directory Id="MainApplicationFolder" Name="Main Application Folder"> <!-- Using notepad.exe as sample file should compile on all systems --> <Component Feature="MainFeature" Win64="yes"> <File Source="$(env.SystemRoot)\notepad.exe" /> </Component> </Directory> </Directory> </Directory> </Product> </Wix>
Ссылки :