2010-01-06 19 views
5

Uso la versión x64 de Windows 7. Mi aplicación utiliza algunos servidores COM (servidores COM nativos x86 habituales) que no se pueden cargar en el contexto x64. Así que decidí ejecutarlo como una aplicación x86 usando WOW, así que establecí el objetivo de la plataforma como x86.Depuración aplicación .NET x86 en Windows x64 en VS2008

Pero el depurador de Visual Studio 2008 comenzó a mostrar mensajes como "El archivo de origen es diferente ..." para todos los archivos de origen cuando intento depurarlo. ¿Cuál es la razón de este comportamiento? Esta pregunta nació allí "The source file is different...." message in Visual Studio 2008 is result of debugging x32 apps on x64 Windows

actualización: Limpié solución, solución reconstruida, obj eliminado, etc. bin y carpetas, reinicia el ordenador, vuelve a instalar Visual Studio ... Así que, ¿qué otra cosa podría ser el problema?

Update2: Si crea un nuevo proyecto de aplicación de Windows y cambia la plataforma de destino a x86, verá este problema. Pero si elimina Settings1.settings del proyecto, el problema se eliminará.. ¿Alguna idea?

Update3: http://social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/bc297668-65b4-46e8-969e-c7a6340d33b6

+0

¿Limpió las carpetas de salida de su proyecto y comprobó el registro de compilación de que la construcción realmente fue exitosa? –

+0

Respondí en la descripción de la pregunta. –

+0

Y si cambia la plataforma de destino a x64, ¿la depuración funciona nuevamente? –

Respuesta

4

Windows 7 establece el modo de compatibilidad de Windows Xp sp 3 para VS 2008 de forma predeterminada.Cambiar la compatibilidad con el modo Windows Vista SP2 ha resuelto problemas.

+0

Para mí, esto también funcionó para Visual Studio 2010. – andnil

+0

Esto funcionó para mí, pero elegí Windows 7 Mode Gracias – Xenon

4

El mensaje de error que está recibiendo no está relacionada con la depuración de una aplicación poco WOW64. Es incluso menos problemático aquí porque Visual Studio ejecuta un proceso de 32 bits dentro de WOW64. Entonces, en lugar de x64 -> x86, en realidad está realizando una sesión de depuración x86 -> x86.

Lo que sucede aquí es que Visual Studio está leyendo la suma de comprobación de los archivos fuente de la PDB y no coincide con la suma de comprobación de los archivos que está utilizando para depurar la aplicación. Las causas más probables para esto son

  • Fuera de la fecha de AP
  • El uso de los archivos de origen incorrectas. Esto es más común de lo que piensas en los escenarios de bifurcación en los que puedes tomar fácilmente la versión incorrecta del archivo.

La forma en que normalmente depurar a través de este es

  • Cerrar VS y borrar manualmente todos los binarios y los directorios binarios
  • Reiniciar VS y reconstruir
  • Cerrar VS
  • Reiniciar VS y adjuntar al proyecto en ejecución sin abrir la solución
  • A continuación, abra manualmente los archivos
+0

Ver mi actualización 2 –

1

También puede consultar el tipo de compilación x86. Cuando lo creó, no puede copiar las configuraciones de la compilación predeterminada y, como tal, nada de su código se está creando cuando ejecuta su aplicación.

Abra las Propiedades de la solución y comprobar el Propiedades de configuración \ Configuración de página. Luego, asegúrese de que todos los proyectos estén marcados en Build para el combo Config/Platform que está utilizando.

+0

De hecho, los proyectos que se excluyen de la compilación en la configuración actual me parecen un error común. Sin embargo, una limpieza total de la solución (como lo hizo el OP) ¿debería hacerle notar eso? –

+0

Es cierto. Pero está ignorando los errores del compilador/mensajes de compilación que probablemente no haya visto antes. Además, si él le dijera que construya explícitamente después de una limpieza, tampoco vería este problema. –

+0

No he hecho el "tipo de compilación" x86, acabo de cambiar el objetivo de la plataforma en la página Generar de las propiedades del proyecto desde Cualquier CPU a x64. Es todo. –

Cuestiones relacionadas