Ответ 1
Конечно, вы должны запускать свою программу в 64-битном режиме. Затем это напечатает
C:\Program Files (x86)
C:\Program Files
Перейдите в: Проект > Свойства проекта... > Сборкa > Отключить Предпочитаете 32-разрядный
Я пытаюсь получить каталог Program Files в 64-разрядной ОС. Этот код ниже возвращает тот же ответ Program Files (x86)
:
Console.WriteLine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86).ToString());
Console.WriteLine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles).ToString());
Любая помощь?
Конечно, вы должны запускать свою программу в 64-битном режиме. Затем это напечатает
C:\Program Files (x86)
C:\Program Files
Перейдите в: Проект > Свойства проекта... > Сборкa > Отключить Предпочитаете 32-разрядный
Это то, что вы хотите:
Environment.GetEnvironmentVariable("ProgramW6432")
Он вернет путь к каталогу программ x64.
Подробнее о переменных среды и WOW64 читайте здесь: https://msdn.microsoft.com/en-us/library/windows/desktop/aa384274(v=vs.85).aspx
Для этого
Console.WriteLine(Environment.GetEnvironmentVariable("ProgramFiles(x86)"));
Пожалуйста, проверьте эту ссылку С# - Как получить программные файлы (x86) на Windows 64 бит
Над ссылкой показывает, что она вернет x86 Program Files directory
во всех этих трех конфигурациях Windows:
32-разрядная версия Windows
32-разрядная программа, работающая на 64-битной Windows
64-разрядная программа, работающая в 64-битных окнах