Мне нужно скопировать утилиту psTool в папку System32 при запуске моего приложения.
Я нахожусь на 64-битной Windows 7, и всякий раз, когда я пытаюсь скопировать exe в битную папку system32 через File.Copy
, exe всегда копируется на SysWow64.
Когда я устанавливаю точку останова на destFile, путь показывается как C:\Windows\System32
, но файл туда не входит (идет в sysWow64). Я попробовал Special Folder
SystemX86
, но файл снова переходит к sysWOW64.
string sourceFile = "C:\bin\Debug\somexe.exe"
string destFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), utilityName);
File.Copy(sourceFile, destFile, true);
Любые предложения о том, что мне не хватает здесь?
ИЗМЕНИТЬ
Как указано ниже в ответе, происходит перенаправление файловой системы. Я разрабатываю приложение с настройками по умолчанию для Visual Studio для консольного приложения на 64-битной ОС. Я не уверен, какие настройки/переключатели необходимо сохранить во время компиляции, чтобы приложение работало как на 32-битной, так и на 64-битной ОС.
В принципе, он должен просто скопировать файл в System32
только независимо от того, какая битная ОС это.
Позже в программе я должен получить доступ к утилите psTools через командную строку, которая недоступна, если я поместил ее в SysWOW64. Если я сделаю изменения, для использования 32-разрядного cmd.exe SysWOW64, это снова будет чем-то вроде 64-битной платформы, которую я не хочу выбирать.
Любое решение, которое может иметь приложение, работающее как на 32-битном, так и на 64-битном без проблем? Мне нужно изменить код (как?) Или мне нужно изменить некоторые свойства этого проекта консольного приложения (какие свойства)?