当我的应用程序运行时,我必须将 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 位操作系统上运行。基本上,无论它是什么位操作系统
,它都应该只将文件复制设置为。
稍后在程序中,我必须通过命令行访问 psTools 实用程序,如果我将它放在 SysWOW64 中,则无法使用该实用程序。如果我进行更改,使用 SysWOW64 的 32 位 cmd.exe,这将再次成为 64 位平台特定的东西,我不想选择。System32
任何可以让应用程序在 32 位和 64 位上运行而没有问题的解决方案?我是否必须修改代码(如何?)还是必须修改此控制台应用程序项目的某些属性(哪些属性)?