Archivo copiado a SysWOW64 en lugar de System32
Tengo que copiar una utilidad psTool en la carpeta System32 cuando mi aplicación se ejecuta.
Estoy en Windows 7 de 64 bits y siempre que intento copiar el exe a la carpeta de 32 bits del sistema a través deFile.Copy
, el exe siempre se copia a SysWow64 en su lugar.
Cuando coloco un punto de interrupción en destFile, la ruta se muestra comoC:\Windows\System32
pero el archivo no entra allí (va a sysWow64). He probado elSpecial Folder
SystemX86
, pero el archivo de nuevo va a sysWOW64.
<code>string sourceFile = "C:\bin\Debug\somexe.exe" string destFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), utilityName); File.Copy(sourceFile, destFile, true); </code>
¿Alguna sugerencia de lo que me falta aquí?
EDITAR
Como se señala a continuación en la respuesta, se está produciendo la redirección del sistema de archivos. 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 al compilar, de modo que la aplicación funcione tanto en sistemas operativos de 32 bits como de 64 bits.
Básicamente, debería simplemente copiar el archivo aSystem32
sólo independientemente de qué bit OS es.
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 coloco en SysWOW64. Si hago un cambio, para usar el cmd.exe de 32 bits de SysWOW64, esto sería de nuevo algo específico de la plataforma de 64 bits, que no quiero optar.
¿Alguna solución que pueda hacer que la aplicación se ejecute 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)?