Devo copiare un'utilità psTool nella cartella System32 quando viene eseguita la mia applicazione.
Sono su Windows 7 a 64 bit e ogni volta, provo a copiare l'exe nella cartella system32 tramite File.Copy
, l'exe viene sempre copiato su SysWow64.File copiato su SysWOW64 anziché System32
Quando si inserisce un punto di interruzione su destFile, il percorso viene visualizzato come C:\Windows\System32
ma il file non viene inserito (va a sysWow64). Ho provato il Special Folder
SystemX86
, ma il file va di nuovo a sysWOW64.
string sourceFile = "C:\bin\Debug\somexe.exe"
string destFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), utilityName);
File.Copy(sourceFile, destFile, true);
Qualche suggerimento quello che mi manca qui?
EDIT
Come sottolineato seguito nella risposta, non c'è sistema di file di reindirizzamento in atto. Sto sviluppando l'app con le impostazioni predefinite di Visual Studio per un'applicazione console su un sistema operativo a 64 bit. Non sono sicuro di quali impostazioni/interruttori debbano essere conservati durante la compilazione, in modo che l'applicazione funzioni sia su sistemi operativi a 32 bit che a 64 bit.
In pratica, è sufficiente impostare il file su System32
, indipendentemente dal sistema operativo a cui è collegato.
Più tardi nel programma, devo accedere all'utilità psTools tramite la riga di comando che non è disponibile se lo metto in SysWOW64. Se apporto le modifiche, per utilizzare il cmd.exe di SysWOW64 a 32 bit, questo sarebbe di nuovo qualcosa di specifico della piattaforma a 64 bit, che non voglio optare.
Qualsiasi soluzione che può avere l'applicazione sia in esecuzione su 32-bit e 64 bit senza problemi? Devo modificare il codice (come?) O devo modificare alcune proprietà di questo progetto di applicazione della console (quali proprietà)?
Perché si sta copiando da system32 in primo luogo, quale strumento della suite PsTools stai cercando di eseguire? –
Copia su 'system32', non copiarlo da. 'pskill' è il nome dell'utilità. – user1240679
Mi hai preso da a/da errore di battitura. Tuttavia, non hai ancora risposto alla domanda ** perché ** stai copiando 'pskill' nella cartella' system32' invece di eseguirla semplicemente da qualche altra parte (e aggiungerla alla variabile di sistema 'PATH' se necessario –