Tengo que copiar una utilidad psTool a la carpeta System32 cuando se ejecuta mi aplicación.
Estoy en 64 bits de Windows 7 y cada vez que intento copiar el archivo exe a la carpeta de bits de system32 a través de File.Copy
, el exe siempre se copia en SysWow64.Archivo copiado en SysWOW64 en lugar de System32
Cuando pongo un punto de interrupción en destFile, la ruta se muestra como C:\Windows\System32
pero el archivo no entra allí (va a sysWow64). He intentado el Special Folder
SystemX86
, pero el archivo vuelve a sysWOW64.
string sourceFile = "C:\bin\Debug\somexe.exe"
string destFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), utilityName);
File.Copy(sourceFile, destFile, true);
¿Alguna sugerencia que me hace falta aquí?
EDITAR
Como se señala más adelante en la respuesta, hay redirección del sistema de archivos que tienen lugar. Estoy desarrollando la aplicación con la configuración predeterminada de Visual Studio para una aplicación de consola en un sistema operativo de 64 bits. No estoy seguro de qué configuraciones/interruptores se deben mantener durante la compilación, para que la aplicación funcione tanto en sistemas operativos de 32 bits como de 64 bits.
Básicamente, solo debe establecer copiar el archivo en System32
solo independientemente del bit OS que sea.
Más adelante en el programa, tengo que acceder a la utilidad psTools a través de la línea de comandos que no está disponible si la ubico en SysWOW64. Si hago un cambio, para usar el cmd.exe de 32 bits de SysWOW64, esto sería nuevamente algo específico de la plataforma de 64 bits, que no quiero optar.
Cualquier solución que pueda tener la aplicación ejecutándose tanto en 32 bits como en 64 bits sin problemas? ¿Tengo que modificar el código (¿cómo?) O tengo que modificar algunas propiedades de este proyecto de aplicación de consola (¿qué propiedades)?
En primer lugar, ¿para qué lo está copiando de system32, qué herramienta del conjunto de PsTools está tratando de ejecutar? –
Cópielo en 'system32', no copiándolo de. 'pskill' es el nombre de la utilidad. – user1240679
Me tienes en el to/from typo. Sin embargo, todavía no ha respondido la pregunta ** por qué ** está copiando 'pskill' en la carpeta' system32' en lugar de simplemente ejecutarlo desde otro lugar (y agregarlo a la variable 'PATH' del sistema si es necesario) –