Из кода, который вы разместили, я не знаю, где / как вы получаете значение для instpathtype
, или какой тип объявлен как.
Но независимо от того, что вы действительно не должны 'не делай так Жесткое кодирование путей к файловой системе - это очень плохая практика , если вы хотите, чтобы ваш код "Просто работал". То, что вы опубликовали выше, не только сломается в зависимости от разрядностиОС, но также, если пользователь переименовал или переместил свою папку Program Files.Если у меня загрузочный диск E :, ваш код также не будет работать на моем компьютере.
Вместо этого вам следует использовать специальные системные папки. Таким образом, вам даже не нужночтобы проверить, работаете ли вы в 32-битной или 64-битной операционной системе..NET Framework предоставляет действительно простой способ получения этих значений с помощью метода Environment.GetFolderPath
и указания папки type , которую вы хотите получить.
В этом случае вам нужна папка 32-битных программных файлов, независимо от разрядности хост-системы, поэтому вы можете использовать значение ProgramFilesX86
для извлечения соответствующей папки, например:
Process.Start(System.Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86) & "\\Intel\\IntelAppStore\\bin\\Store.Client.UI.exe")