當我的應用程序運行時,我必須將psTool實用程序複製到System32文件夾。
我在64位Windows 7上,每當我嘗試通過File.Copy
將exe複製到system32位文件夾時,exe總是被複制到SysWow64。將文件複製到SysWOW64而不是System32
當我在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);
任何建議我在這裏失蹤?
編輯
正如下面的回答指出,有文件系統重定向發生。我正在使用64位操作系統上的控制檯應用程序的Visual Studio的默認設置開發應用程序。我不確定編譯時必須保留哪些設置/開關,以便該應用程序可以在32位和64位操作系統上運行。
基本上,它應該只設置將文件複製到System32
,而不管它是什麼位的操作系統。
在程序的後面,我必須通過命令行訪問psTools實用程序,如果我將它放在SysWOW64中,該命令行不可用。如果我進行更改,要使用SysWOW64的32位cmd.exe,這將再次是64位平臺特定的,我不想選擇。
任何可以使應用程序在32位和64位上均可正常運行的解決方案?我是否必須修改代碼(如何?),還是必須修改此控制檯應用程序項目的某些屬性(哪些屬性)?
爲什麼你首先從system32複製它,PsTools套件的哪個工具是你試圖運行的? – 2012-04-11 19:10:34
將其複製到'system32',而不是將其複製。 'pskill'是該實用程序的名稱。 – user1240679 2012-04-12 04:11:00
你讓我接觸到/來自錯字。但是,您仍然沒有回答問題**爲什麼**您將'pskill'複製到'system32'文件夾中,而不是從別處運行它(並且在必要時將其添加到系統'PATH'變量中) – 2012-04-12 05:57:58