visual studio que proyecto procesador para new msil create compilar arquitectura c# visual-studio-2012 build x86 64bit

c# - que - visual studio compilar en 32 bits



Visual Studio: cómo construir y especificar correctamente las configuraciones y plataformas para x64 y x86 (1)

Usando: Visual Studio 2012 Professional y Ultimate con todas las últimas actualizaciones

¿Cómo especifico correctamente la configuración y la plataforma para construir correctamente x86 y x64?

Visual Studio, cuando crea una aplicación Winforms por primera vez, le ofrece dos configuraciones, Debug y Release, con AnyCPU definida como la plataforma.

Si solo apunta a una plataforma, entonces la respuesta es fácil, vaya a Build | Configuration Manager y seleccione una de las plataformas y luego vaya a la página de compilación de las propiedades del proyecto y seleccione la misma plataforma (x86 o x64) y listo! Terminas con (digamos que quieres x86)

/bin/x86/Debug /bin/x86/Release

Tengo una solución con una aplicación y múltiples proyectos de dependencia (ensamblajes de DLL).

Como VS Configuration Manager tiene dos listas desplegables en la parte superior, Configuración y Plataforma y luego en el nivel del proyecto otra configuración y plataforma, hice lo siguiente:

(Antes de seguir escribiendo, creo que toda la configuración apesta, pero ...)

Creé dos nuevas configuraciones, Debug64 y Release64, utilizando las mejores plataformas desplegables y las plataformas mixtas seleccionadas para la plataforma.

Seleccioné cada una de las cuatro configuraciones de soluciones principales por turno y luego configuré la configuración a nivel de proyecto y la plataforma a nivel de proyecto para que coincidiera, así que:

Debug64 === Debug64, x64 Release64 === Release64, x64 Debug === Debug, x86 Release === Release, x86

Luego ingresé a la página de compilación de las propiedades del proyecto (Alt + Enter), ignoré la plataforma y seleccioné cada configuración por turno y luego configuré el procesador de destino para que coincidiera. Cambié la salida para que fuera la siguiente:

Debug64: /bin/x64/Debug Release64: /bin/x64/Release Debug: /bin/x86/Debug Release: /bin/x86/Release

De forma predeterminada, Visual Studio usa la plataforma superior para configurar la carpeta y el nombre de configuración para configurar la última parte de la salida. Si guardo y cierro las propiedades del proyecto, todo parece estar bien. Puedo construir, y terminar con las carpetas adecuadas.

El problema surge cuando cambio las configuraciones de la solución en la barra de herramientas de Visual Studio. La página de compilación de propiedades del proyecto vuelve a lo que quiere de forma predeterminada, es decir, por ejemplo, / bin / x64 / Debug64 para las debugs y algo similar para el lanzamiento.

Lo que me llevó a escribir este problema es que el diseñador se confunde y no puede encontrar la biblioteca adecuada.

Me gustaría seleccionar del menú desplegable de configuración de la solución de Visual Studio mi objetivo deseado (Debug x64, Release x64, Debug x86, Release x86) y hacer que se construya.

¿Cómo puedo hacer eso? ¿Qué estoy haciendo mal?

La creación de solo dos configuraciones de solución, Depurar y Liberar, no funciona, porque no hay una plataforma desplegable de soluciones, que luego se dirige a todos los subproyectos. Visual Studio tiene, me parece, demasiadas secciones de configuraciones y secciones de plataforma. Tal vez solo me esté perdiendo algo.


Para la posteridad, aquí está la respuesta. Puede sonar obvio, pero no lo fue para mí, así que ...

Notas: Crear Debug64 y Release64 fueron errores que me costaron. No solo tuve que eliminar Debug64 y Release64 presentes en las soluciones (en Configuration Manager), sino que tuve que eliminar Debug64 y Release64 generados automáticamente para cada uno de los proyectos (también en Configuration Manager, solo en la parte de la tabla). Eso tomó un tiempo.

  1. Asegúrese de tener las configuraciones de solución de depuración y lanzamiento generadas automáticamente.

  2. En las plataformas de soluciones se añaden x86 y x64. El valor predeterminado es Cualquier CPU.

  3. Seleccione de la configuración de la solución y los menús desplegables de la plataforma las diversas permutaciones de (Debug / Release y x86 / x64). Asegúrese de que los proyectos coinciden, lo que deberían.

  4. Ir a cada proyecto (seleccione el nombre del proyecto y luego Alt + Enter).

  5. En la página de propiedades del proyecto, seleccione las diversas permutaciones de Debug / Release y x86 / x64 en los menús desplegables de soluciones. Asegúrese de que el procesador de destino esté configurado correctamente (debería estarlo, pero encontré instancias en las que no lo estaban, probablemente debido a mis intentos anteriores). Además, establece el directorio de salida. Eso debería ser correcto y automático (/ bin / x86 / Debug, etc.). Si no, arreglarlo.

Microsoft no tiene un menú desplegable de plataforma de soluciones en la barra de herramientas, por lo que si desea cambiar las plataformas de soluciones, debe ir a Build | Administrador de configuración y seleccione la plataforma de solución adecuada. Puede seleccionar la configuración de la solución desde Build | Configuration Manager (Visual Studio actualizará automáticamente la configuración de la solución seleccionada en el menú desplegable de la barra de herramientas) o simplemente seleccionará la nueva configuración de la solución en el menú desplegable de Visual Studio.

La construcción del proyecto se hará cargo del resto.

Notas de compilación 1. El diseñador de Visual Studio requiere versiones x86 de los controles del usuario para mostrarse correctamente. Eso no fue obvio al principio, pero es ahora. Visual Studio se instala en la carpeta "C: / Archivos de programa (x86)" y no en la carpeta "C: / Archivos de programa", lo que hace que Visual Studio sea una aplicación de 32 bits, no de 64 bits, por lo tanto, su capacidad de "Solo versiones de 32 bits en el diseñador.

  1. Puede haber carpetas extraviadas / bin / Debug y / bin / release, pero no se utilizarán.

  2. Todavía estoy intentando que BuildVersionInc no se incremente cuando se genera el mismo código en diferentes configuraciones, pero ese es un problema diferente.