Muszę skopiować narzędzie psTool do folderu System32, gdy uruchomiona jest moja aplikacja.
Jestem na 64-bitowym systemie Windows 7 i zawsze, gdy próbuję skopiować plik exe do folderu system32 bit poprzez File.Copy
, exe zawsze zostanie skopiowany do SysWow64 zamiast tego.Pobieranie pliku skopiowanego do SysWOW64 zamiast System32
Po umieszczeniu punktu przerwania na destFile ścieżka jest wyświetlana jako C:\Windows\System32
, ale plik tam nie wchodzi (przechodzi do sysWow64). Próbowałem Special Folder
SystemX86
, ale plik ponownie przechodzi do sysWOW64.
string sourceFile = "C:\bin\Debug\somexe.exe"
string destFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), utilityName);
File.Copy(sourceFile, destFile, true);
Jakieś sugestie, czego tu brakuje?
EDIT
Jak wskazano poniżej odpowiedź, nie ma systemu plików Przekierowanie odbywa. Zajmuję się tworzeniem aplikacji z domyślnymi ustawieniami Visual Studio dla aplikacji konsolowej na 64-bitowym systemie operacyjnym. Nie jestem pewien, jakie ustawienia/przełączniki muszą być przechowywane podczas kompilacji, aby aplikacja działała zarówno na 32-, jak i 64-bitowym systemie operacyjnym.
Zasadniczo powinien po prostu ustawić kopiowanie pliku na System32
tylko bez względu na to, jaki jest to system operacyjny.
Później w programie, muszę uzyskać dostęp do narzędzia psTools za pomocą wiersza poleceń, który jest niedostępny, jeśli umieszczę go w SysWOW64. Jeśli dokonam zmiany, aby użyć 32-bitowego cmd.exe SysWOW64, będzie to znowu coś specyficznego dla platformy 64-bitowej, której nie chcę wybierać.
Jakieś rozwiązanie, które może sprawić, że aplikacja będzie działać bez żadnych problemów zarówno w wersji 32-bitowej, jak i 64-bitowej? Czy muszę zmodyfikować kod (jak?) Lub czy muszę zmodyfikować niektóre właściwości tego projektu aplikacji konsolowej (jakie właściwości)?
Dlaczego kopiujesz to z systemu32, które narzędzie zestawu PsTools próbujesz uruchomić? –
Skopiuj go do 'system32', nie kopiuj go z. 'pskill' to nazwa narzędzia. – user1240679
Masz mnie na do/z literówki. Jednak nadal nie odpowiedziałeś na pytanie ** dlaczego ** kopiujesz 'pskill' do folderu' system32' zamiast po prostu uruchamiać go z innego miejsca (i jeśli to konieczne, dodajesz je do zmiennej systemowej 'PATH') –