2010-12-08 13 views
9

¿Alguien sabe si Windows 7 de alguna manera se remitirá a la variable de entorno "ProgramFiles (X86)" cuando se usa la variable "ProgramFiles"?Windows 7 64-bit variable de entorno de archivos de programa

Tenemos una situación en la que un desarrollador utiliza visual studio y el archivo proj hace referencia a ensamblajes usando "$ (ProgramFiles)". La máquina es de 64 bits y la variable "Archivos de programa" apunta a "C: \ Archivos de programa"; sin embargo, los ensamblados están en "C: \ Archivos de programa (X86)" pero el proyecto se compila. No se compila si se usa la ruta literal de "C: \ Archivos de programa". El compilador dice que no puede encontrar los ensamblajes

+4

Hans la respuesta es correcta y usted puede encontrar más información aquí: http://msdn.microsoft.com/en-us/library/aa384232%28VS.85%29.aspx –

Respuesta

6

Sí, Windows asigna automáticamente el acceso a carpetas y archivos a c:\program files para los programas de 32 bits al c:\program files (x86). Visual Studio y MSBuild son programas de 32 bits. Lo mismo es cierto para c: \ windows \ system32 vs c: \ windows \ syswow64.

+0

Gracias. Es lo que pensaba. – PhilBrown

+1

No creo que esto sea cierto, excepto por el uso de la variable de entorno% ProgramFiles% que proporciona automáticamente la ruta correcta en función de la bitidez del proceso. La razón por la cual la situación del OP funciona es porque VS es de 32 bits y '$ (ProgramFiles)' se refiere a la variable de entorno% ProgramFiles% que será 'C: \ Archivos de programa (x86)' para un proceso de 32 bits en un 64 -bit OS. Si enciendo un exe de 64 bits en 'C: \ Program Files \ Acme \ foo64.exe' de un proceso de 32 bits, el sistema operativo simplemente me cambia la ruta a' C: \ Archivos de programa (x86) \ Acme \ foo64.exe'. –

Cuestiones relacionadas