32 бита против 64 бита не должно иметь значения, потому что в любом случае Program Files - c: \ Program Files.
Что имеет значение, так это язык ОС, который может изменять буквальный текст c: \ Program Files \ Common Files. Правильный способ получить этот каталог:
System.Environment.GetFolderPath (System.Environment.SpecialFolder.CommonProgramFiles);
Затем вы можете использовать эту папку, а затем объединить остальные элементы ... Я не думаю, что эти элементы зависят от языка.