Cómo determinar por qué Visual Studio podría omitir proyectos al crear una solución

95

Estoy depurando el trabajo de otra persona y la solución es bastante grande. Cuando trato de construir todo, varios proyectos dentro de la solución no se compilan y simplemente se omiten. Ver la ventana de salida durante el proceso de compilación dice:

1> ------ Omitido Reconstruir todo: Proyecto: pr1lib ------

¿Cómo puedo determinar por qué se omitieron estas compilaciones? No puedo encontrar resultados adicionales.

Esto es con VS2008 y la solución se compone de código c # y c ++.

Mate
fuente
Además de las respuestas proporcionadas, asegúrese de que la configuración de la solución tenga cada proyecto en el estado marcado (la casilla de verificación está marcada) que debe limpiarse / construirse:Build > Configuration Manager: check as needed
Metro Smurf
2
Para solucionar problemas de por qué se omiten los proyectos. Asegúrese de agregar /fla la configuración de compilación para obtener un archivo msbuild.log que incluye el motivo. Por ejemplo:skipped, due to false condition; ( ('$(Configuration)' == 'Release') and ('$(Platform)' == 'Any CPU') ) was evaluated as ( ('Debug' == 'Release') and ('AnyCPU' == 'Any CPU') ).
T_D
2
@T_D: ¿en qué parte de Visual Studio agregaría '/ fl'? ¿Dónde aparecería el registro? Si agrega esto como respuesta, votaré a favor, ya que la mayoría de las otras respuestas son varias suposiciones aleatorias para abordar el problema en lugar de responder a la pregunta original, que se trataba simplemente de obtener más información sobre el problema.
PaulG
@PaulG Vea mi respuesta a continuación. Simplemente establezca la configuración en Opciones.
Darren Wood

Respuestas:

88

Haga clic derecho en la solución, elija Propiedades y luego Propiedades de configuración. Aquí puede elegir qué proyectos construir.

[ editar ]:
Ver el comentario de Kdt: ... cuando miré en las propiedades de configuración ... el objetivo de compilación del proyecto se configuró para "Plataformas mixtas" mientras que la solución se configuró para compilar "Cualquier CPU".

* Cuando me sucedió este problema, el proyecto principal solo tenía 'Cualquier CPU' y también configuró la dll secundaria en 'cualquier CPU', sin embargo, eliminé ese perfil y dejé solo 'x86'. Elegir x86 solo para el dll hace que comience a funcionar
[/ editar]

Tchami
fuente
20
Estaba teniendo una misteriosa "compilación omitida", y cuando miré en las propiedades de configuración, el proyecto estaba marcado para compilación. Sin embargo, el objetivo de compilación del proyecto se configuró para "Plataformas mixtas" mientras que la solución se configuró para compilar "Cualquier CPU"; cambiarlos para que coincidieran solucionó el problema.
kdt
2
En mi caso, aunque todos los proyectos y la solución se establecieron en "Cualquier CPU", un proyecto omitió la construcción. Solo después de configurar la solución en "Plataformas mixtas" y luego volver a "Cualquier CPU", se compilaría. Mirando un diff del archivo de solución antes y después, cambió de {784BDC39-5783-4128-956E-99EA062FA8FB}.Debug|AnyCPU.ActiveCfg = Debug|AnyCPUa {784BDC39-5783-4128-956E-99EA062FA8FB}.Debug|AnyCPU.ActiveCfg = Debug|Any CPU. La única diferencia es el espacio adicional entre "Any" y "CPU" al final de la línea.
Simon Tewsi
6
En mi caso, todos los proyectos se establecieron en "Cualquier CPU" y el problema se resolvió eliminando los proyectos (eliminar el proyecto no hace que se eliminen los archivos) y volver a agregarlos a la solución.
Hamid Mayeli
40

¡Acabo de tener el mismo problema: "descargar proyecto" y "recargar proyecto" resolvieron el problema!

Sharon Ben-Avraham
fuente
Tengo el mismo problema, y ​​la descarga / recarga funciona, pero el problema parece volver, lo cual es molesto cuando le sucede a un montón de proyectos y tienes que descargar / recargar cada uno de ellos ... Cualquiera sabe si hay un forma de evitar esto por completo?
Liron
Esto solucionó el problema para mí cuando Visual Studio informaba erróneamente que los proyectos ya estaban actualizados en la ventana de salida, al intentar hacer una compilación.
Kevin Laity
33

Se estaban omitiendo las operaciones de construcción, reconstrucción y limpieza. La descarga y la recarga no ayudaron, ni tampoco reiniciar Visual Studio.

Una vez que eliminé el proyecto de la solución y lo volví a agregar, ya no se omite. Para eliminarlo, en el Explorador de soluciones, haga clic con el botón derecho en el proyecto> Eliminar> Aceptar. Para volver a agregarlo, en el Explorador de soluciones, haga clic con el botón derecho en la solución> Agregar> Proyecto existente y seleccione su proyecto

usuario1325179
fuente
7
Tenga en cuenta que tendrá que volver a agregar todas las referencias de proyecto a ese proyecto.
Joseph
9

Si la configuración es x64 y el compilador x64 no está instalado, se saltará el proyecto.

Dave
fuente
1
+1 Genio. Puede encontrar SP1 aquí: microsoft.com/download/en/details.aspx?id=10986
ashes999
Cuando el compilador x64 no está instalado, ni siquiera puede seleccionar x64.
Calmarius
La solución y las configuraciones del proyecto pueden definir y utilizar una entrada titulada "x64". El tercer ddl para el arco del procesador (destino de la plataforma - en la mitad de la página de propiedades de compilación) es el que no está disponible
StingyJack
9

Mi solución es la misma que se mencionó anteriormente: Eliminar -> Agregar proyecto existente

Pero esta solución implica que las referencias entre proyectos desaparezcan

Para evitar volver a agregar referencias: y en caso de que use un sistema de control de versiones como GIT o TFS o lo que sea, es posible lograr el objetivo con los siguientes pasos:

  1. Asegúrese de que todos los cambios estén confirmados / registrados antes de la operación.

  2. Revise todos los proyectos eliminándolos de la solución y agregándolos-existentes

  3. Observe que el archivo .sln ha cambiado

  4. Conserve el nuevo archivo .sln, pero deshaga los cambios en todos los archivos .cspoj con el sistema de control de versiones

Andrey K.
fuente
8

Reiniciar Visual Studio hizo el truco

Mohammad Fneish
fuente
5

Visual Studio 2008, puede deberse a que el compilador de 64 bits no se habría instalado.

Panel de control -> Programas y características -> Microsoft Visual Studio 2008 professional -> [doble clic]

En el diálogo de Visual Studio

Siguiente -> Agregar / quitar funciones -> (En) Visual C ++ -> (seleccionar) compilador x64 y herramientas

Anish AR
fuente
4

El problema también existe en VS 2010; de las soluciones propuestas: editar la configuración de compilación, limpiar, cambiar / volver a cambiar el marco de destino, NO funciona. Pero descargar y recargar el proyecto sí lo hace.

Mark Alsip
fuente
4

Tenía uno extraño que puede valer la pena documentar entre las otras posibilidades aquí ...

Agregué un proyecto compartido a mi solución, con código que se usó en dos o tres de los otros proyectos. Como ya sabe, los proyectos compartidos son solo código, y no realmente un proyecto en el sentido tradicional. No puede "construir" un proyecto compartido, es solo código que está incrustado en los otros proyectos y luego construido allí.

Pero de alguna manera mi archivo de solución se había actualizado como si el proyecto compartido fuera algo propio que necesitara ser construido. Supongo que cada vez que intentaba compilar y no había cambiado el código en el proyecto compartido, pensaba que 'nada ha cambiado, omita esas compilaciones'

Encontré el proyecto compartido en el solution.slnarchivo como:

Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Api.Common", "Api.Common\Api.Common.shproj", "{EC580471-D78A-4509-AC46-BD565553AD60}"

..lo cual está bien. Lo que no está bien es que este proyecto también apareció en algo GlobalSection(ProjectConfigurationPlatforms) = postSolutionsimilar:

    {EC580471-D78A-4509-AC46-BD565553AD60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    {EC580471-D78A-4509-AC46-BD565553AD60}.Debug|Any CPU.Build.0 = Debug|Any CPU
    {EC580471-D78A-4509-AC46-BD565553AD60}.Release|Any CPU.ActiveCfg = Release|Any CPU
    {EC580471-D78A-4509-AC46-BD565553AD60}.Release|Any CPU.Build.0 = Release|Any CPU

Eliminé esas cuatro líneas de mi .slnarchivo y ahora las cosas parecen felices de nuevo.

PaulG
fuente
¡Excelente! ¡Esto fue! Eliminé todas las filas del archivo .sln que comenzaban con una fila que solo decía "Global" y eliminé todas las filas hasta "EndGlobal". Luego funcionó de nuevo.
Ted
Cuando los eliminé, se volvieron a agregar automáticamente cuando construí la solución, sin embargo, volvieron con las cuatro entradas configuradas para igual Depurar | Cualquier CPU. Pero solucionó mi problema.
EspressoBeans
Este también era mi problema. Eliminé todas las entradas de configuración de compilación asociadas con el GUID del proyecto compartido y la compilación funcionó una vez más. Muy desconcertante.
Zoop
3

Oye, acabo de arreglar este. Pensé que podría ayudar. Lo más probable es que no haya instalado los compiladores correspondientes junto con Visual Studio. Esto me sucedió hoy: de forma predeterminada, el instalador de VS 2008 no instala el compilador x64 C ++.

Si tiene SP1, desinstálelo antes de cambiar la instalación de VS. Cuando termine, instale SP1 nuevamente.

Sergey Malgin
fuente
2

Vaya al menú de compilación y elija "administrador de configuración". Esto mostrará qué proyectos están configurados para construir en su configuración seleccionada.

1800 INFORMACIÓN
fuente
2

Me acaba de pasar algo similar. No estoy seguro de cuál fue el problema, pero no limpiaría , compilaría , reconstruiría , etc. Estoy operando en Visual Studio 2017 y quería un netstandard2.0ensamblaje. El problema para mí fue que de alguna manera el tipo de proyecto era incorrecto, tal vez comencé desde una netcoreappbiblioteca de clases, algo así, atascado en el archivo de Solución , no lo recuerdo. De todos modos, hice una copia de seguridad del proyecto, creé un nuevo netstandardproyecto de biblioteca de clases y tomé en cuenta los bits de la copia de seguridad, y eso me arregló. HTH alguien.

mwpowellhtx
fuente
2
  1. Cerrar visual studio
  2. Abra el archivo sln con el bloc de notas
  3. elimine todas las cosas como esta: {B546C55D-9321-4FC0-B25C-46844222BEBE} .Debug with Fakes | x86.ActiveCfg = Debug with Fakes | x86 (habrá un montón de ellas)

4.Guarde el archivo 5.Abra Visual Studio y todo mejor

Chris Heinemann
fuente
2
¿Por qué ayuda esto? Agregue alguna explicación y sea lo más detallado posible para que los futuros lectores puedan ayudar a comprender por qué necesitaba tomar esos pasos.
2

Actualicé a 15.9.11, ... después de algunas compilaciones, el mismo problema: la mayoría de los proyectos se omiten (que se compilaron hace un segundo sin problemas). Descargar / recargar la solución ayuda siempre en mi caso, pero volverá a suceder pronto.

No tengo idea de por qué ... excepto un gran error en VS2017

Revisé el administrador de configuración, todas las marcas de verificación están configuradas para compilar.

Tal vez, tenga algo que ver con los paquetes nuget, pero eso es solo una suposición

La solución solo tiene c ++ / vcxproj, no csproj. 64 y 32 están instalados tanto

Timm
fuente
2

Lo primero que debe hacer es diagnosticar por qué la compilación omite proyectos. Entonces, para obtener una salida de compilación detallada, cambie la verbosidad a detaileden el siguiente lugar en Visual Studio.

ingrese la descripción de la imagen aquí

Darren Wood
fuente
8
Desafortunadamente, la configuración de verbosidad no ayuda. La salida todavía solo dice 'proyecto omitido' sin explicar por qué.
PaulG
1

Tenía el mismo problema, descubrí que la configuración del proyecto era para la CPU Itanium, cambiándolo a Intel lo solucionó.

Sabuncu
fuente
1

Tenía el mismo problema con VS2005, todas las configuraciones eran correctas. Incluso se saltaba el comando Limpiar proyecto.

Finalmente, la descarga / recarga hizo la magia.

Prakash
fuente
1

Haga clic con el botón derecho en Solución en el explorador de soluciones y, a continuación, haga clic en Propiedad en la parte inferior del menú. En las ventanas de propiedades, haga clic en Propiedades de configuración -> Configuración en el panel izquierdo, verá la lista de proyectos en el panel derecho, asegúrese de que la casilla de verificación Construir esté marcada en la ventana emergente.

TonyXu
fuente
1

Si su solución contiene un archivo de proyecto NuGet (* .nuproj), intente descargarlo y luego reconstruir su solución.

Esto funcionó para mí después de que nada de lo anterior funcionó.

FrequentGuest
fuente
0

Encuentro que, a veces, cuando tiene la plataforma de destino configurada para, digamos, x86 en su solución y en sus proyectos, el proyecto no siempre lo ha seleccionado.

Para volver a verificar, vaya a las propiedades del proyecto y vea si puede seleccionar esa plataforma en la configuración Construir-> Plataforma si no puede, entonces deberá ir al administrador de configuración y crear esa configuración.

TriStar
fuente
0

Tuve este problema con algunos proyectos de Windows CE en una nueva PC. "Descargar proyecto" y "Recargar proyecto" parecían solucionar el problema, pero en realidad Visual Studio simplemente se había cambiado a una plataforma diferente y la había construido.

Resultó que aunque mi plataforma WinCE se mostró como la plataforma activa, Visual Studio no la vio "realmente". La solución fue reinstalar el SDK de WinCE con privilegios de administrador :

  • Asegúrese de que Visual Studio 2008 no se esté ejecutando.
  • Abra un "Símbolo del sistema de Visual Studio 2008" como administrador. En Windows 7, simplemente haga clic derecho en el atajo y elija la opción "Ejecutar como administrador".
  • Ingrese el siguiente comando: msiexec /log SDKInstallLog.txt /package <the path to your .msi file>
  • Cuando se le pregunte si desea hacer una instalación personalizada o completa, elija personalizada e indique al instalador que omita la instalación de la documentación (este paso no fue necesario en mi caso; de hecho, solo le pedí que "repare" la instalación existente. )
  • Instalar en pc
Qwertie
fuente
0

VS 2008 omitirá los destinos x64 si no tiene instalado el compilador x64. VS 2008 no lo hace de forma predeterminada. Una especie de duh, cosa.

usuario2869030
fuente
0

Tuve un problema muy similar después de generar un proyecto a partir de un descompilador de Telerik y luego intentar recompilarlo. El proyecto se omitió cada vez que intenté reconstruirlo. Probé muchas de las sugerencias anteriores, pero para mí, fue el .NET Framework seleccionado en las propiedades del proyecto.

Haga clic con el botón derecho en el proyecto en el archivo de solución, seleccione propiedades, pestaña de aplicación, cambie el marco de destino de 4.0 a 3.5.

Luego, reconstruí y obtuve un montón de errores faltantes de referencia de ensamblado, lo cual tiene sentido ya que aún no he agregado referencias a ellos.

Elmer
fuente
0

Actualizo una pequeña actualización de Visual Studio 2017 y luego el instalador me recuerda que reinicie mi computadora, pero no lo reinicié.Cuando construyo mi proyecto o solución en Visual Studio 2017, encuentro el mismo problema anterior Supongo que la actualización tal vez la clave, así que reinicio mi computadora, lo hice.:>

Farb
fuente
0

Tuve este problema en Visual Studio 2017 15.9.4 y, después de buscar y dedicar algo de tiempo, descubrí que en mi solución el archivo .csproj de uno de los proyectos se corrompió después de fusionarse en TFS. (Podría construir otros proyectos descargando el proyecto problemático de la solución). La forma en que resolví mi problema fue que comparé el archivo .csproj antes y después de la fusión y lo solucioné. Y por corrección me refiero a que, dado que el tipo de mi propio proyecto era .netStandard, eliminé líneas innecesarias, incluido Configuration PropertyGroup , todas y otras en el nuevo archivo .csproj para que sea similar a la versión anterior.

VahidShir
fuente
0

Tuve un problema similar, tuve un proyecto que no se pudo cargar en el explorador de soluciones por alguna razón. Cuando cargué ese proyecto funcionó a las mil maravillas.

Gaurav Yeole
fuente
0

Me acabo de meter en este problema:

Había actualizado VS 2017 a la última versión 15.9.11 y algunos de mis proyectos se actualizaron a .net core 2.2. Inicialmente cargué todos los proyectos que intenté construir / limpiar / reconstruir y todo se omitió. Siga lo siguiente para resolver:

  1. Descargué cada proyecto y los recargué.
  2. Cerró todas las instancias de VS y abrió VS como administrador (haga clic con el botón derecho en el atajo y elija la opción "Ejecutar como administrador")

Eso es todo, todo volvió a la acción y pude construir todos los proyectos con éxito.

chethan
fuente
0

El estudio visual 2017

Después de agregar la configuración en el Administrador de configuración

Haga clic con el botón derecho en el Proyecto -> Solo proyecto -> Solo compilar / Solo reconstruir / Solo limpiar

si todos los demás ajustes son correctos.

mail2subhajit
fuente
0

Problema: Rebuilding, Build, Clean estaba omitiendo todos mis proyectos excepto dos de ellos.

Soluciones que no funcionaron para mí:

  1. Los ajustes de configuración de la solución fueron los esperados, por lo que ningún cambio en ellos ayudó.

  2. La descarga y la recarga no funcionaron.

Razón de ocurrencia:

Esto sucedía porque el marco .NET de destino era más alto (4.7) para esos 2 proyectos pero más bajo para los otros proyectos. Inicialmente apareció un mensaje pidiéndome que instale .NET 4.7, lo cual hice, pero resulta que no pudo reconocer que estaba instalado sin reiniciar mi máquina.

Soluciones que funcionaron:

  1. Reiniciar mi máquina funcionó. Después de reiniciar, reconoció correctamente que .NET 4.7 está instalado.
  2. Alternativamente, degradar el marco de destino del proyecto haciendo clic con el botón derecho en el proyecto -> Propiedades -> Aplicación -> Marco de destino y configurándolo de la misma manera que los otros proyectos que se estaban omitiendo, también resolvió el problema.

Recomendaría instalar la última versión de .NET Framework y reiniciar la máquina para evitar más problemas.

Sonali Agrawal
fuente
0

Omitirá las compilaciones en cualquier proyecto que tenga proyectos dependientes que no se hayan podido compilar.

mcmillab
fuente