Cómo encontrar la razón de la compilación fallida sin ningún error o advertencia


145

Tengo una aplicación web que contiene referencias a servicios WCF.

Al compilar con Visual Studio 2010, Build falla sin ningún error o advertencia. Sin embargo, construir el .csprojuso MsBuildes exitoso.

No puedo entender qué debo probar en Visual Studio para resolver / diagnosticar el problema. ¿Puedes por favor ayudarme?

EDITAR:

Descubro que la construcción ha fallado,

  1. Del texto que se muestra en la barra de estado.
    ingrese la descripción de la imagen aquí

  2. Desde la ventana de salida:

    ========== Build: 0 succeeded or up-to-date, 1 failed, 0 skipped ==========

55
¿Cómo sabes que tu construcción está fallando?
Sam, soy, dice Restablecer a Mónica el

55
¿Hay algo en la pestaña de salida?
Malicia

15
Intente aumentar la verbosidad de la ventana de salida en Visual Studio. Puede ayudar a determinar el problema. Cómo aumentar el nivel de verbosidad: blogs.msdn.com/b/saraford/archive/2008/10/07/…
Maxim Kornilov

66
¿Has intentado reiniciar VS2010 o incluso reiniciar tu PC?
comecme

2
@NahuelI. Tuve un problema similar una vez más en otro proyecto, cuando busqué stackoverflow recibí mi propia pregunta :-)
Abhijeet

Respuestas:


120

Acabo de encontrarme con una situación similar. En mi caso, una acción personalizada (del paquete MSBuildVersioning disponible en Nuget.org - http://www.nuget.org/packages/MSBuildVersioning/ ) que apareció en el destino BeforeBuild del archivo csproj estaba fallando sin activar ningún mensaje de error en el lugar normal

Pude determinar esto estableciendo la "verbosidad de salida de compilación del proyecto MSBuild" (en la última pestaña Herramientas de Visual Studio [Ruta: Herramientas> Opciones> Compilar y ejecutar ]) en " Diagnóstico " como se muestra a continuación. Esto luego mostró que la acción personalizada (en mi caso HgVersionFile) fue lo que había fallado.

Captura de pantalla de Visual Studio que muestra la configuración modificada.


2
Excelente hallazgo Richard: información realmente útil cuando configura ambos niveles de verbosidad para el diagnóstico
Dai Bok el

3
Para cualquiera que no tenga ni idea como yo: para usar este método puede que tenga que buscar el contenido de la ventana de salida. Mis errores de compilación estaban ocultos por #pragma warning disabledeclaraciones y solo eran visibles cuando buscaba 'error' en la ventana de salida.
sirdank el

Después de configurar mi verbosidad en diagnóstico, descubrí que estaba obteniendo un System.OutOfMemoryException. Estaba usando el 98% de la memoria disponible de mi computadora. ¡Esta es una respuesta genial!
TxRegex

1
Esto también resuelve el problema en VisualStudio 2017. Muchas gracias.
H. Aydin

1
Para mí, estaba usando Queue New Build para compilar en TFS y el cuadro de diálogo Queue Build tiene una verbosidad en la segunda pestaña que podía abrir y luego ver el problema en el registro de compilación.
AaronLS

135

Build + Intellisense se tragó los mensajes de error. Seleccionando Construir solo se muestran.

Captura de pantalla


Acabo de entrar en la situación en la que ninguno de estos muestra error :(
Imad

1
Wow, esto funcionó para mí, cómo demonios es esto en la nueva versión de VS 2019. ¡Gracias hombre!
Carter

1
@AbuAbdullah Trabajó para mí. Buen trabajo ayudando a otros.
nam

gracias, me salvó el día
Bikram Limbu

59
  • Si la solución contiene más de un proyecto, intente construirlos uno a la vez.
  • Intente reiniciar Visual Studio.
  • Intente reiniciar la computadora.
  • Intenta " Reconstruir todo "
  • Pruebe " Solución limpia ", luego elimine los archivos " vspscc " y " vssscc " y luego reinicie Visual Studio y luego " Reconstruir todo ".

105
Y cuando no ayuda, ¿debería encontrar un nuevo trabajo?
Alex Zhukovskiy

2
Solo reiniciar VS2013 me ayudó. Estaba trabajando en una máquina virtual con recursos limitados, pero no estoy seguro de si eso tuvo algo que ver con eso.
Jmaurier

2
No puede limpiar la solución si tiene este problema.
H. Aydin

1
Lo que me ayudó fue cerrar todas las instancias de VS (no lo suficiente como para cerrar la defectuosa), y luego eliminar la .vscarpeta e iniciar VS nuevamente.
EliSherer

22

El reinicio de VS (2013 Pro, Win 8.1) lo hizo por mí.


VS 2015 Community Win 7 con un solo proyecto MVC. Misma resolución
maplemale

2
VS 2017 Community Win 10. ¡Creo que debería haber intentado apagarlo y volver a encenderlo antes de buscar una solución!
DreamTeK


9

Quiero ampliar la respuesta de Sasse .

Para solucionar el problema con Visual Studio 2015 Update 2, tuve que compilar cada proyecto uno a la vez y mirar la ventana de salida después de cada compilación.

Un proyecto me dio

"El tipo o nombre de espacio de nombres 'SomeNamespace' no existe en el espacio de nombres 'BeforeSomeNamespace' (¿falta una referencia de ensamblado?)".

No hubo ningún error en la ventana Lista de errores, pero el ensamblaje tenía una señal de advertencia amarilla en "Referencias".

Luego vi que el proyecto de referencia apuntaba a 4.5.1 y el proyecto de referencia 4.6.1. Cambiar 4.6.1 a 4.5.1 permitió que la compilación general tuviera éxito.


1
Bueno, construir un proyecto a la vez puede no ser necesario, pero una cosa es segura: mire cuidadosamente la ventana de salida (mejor aún, cópielo / péguelo en el bloc de notas y use Ctrl + F buscar) para una palabra "faltante". No aparece en la lista de errores, pero seguro que rompe tu solución. -.-
Dovydas Navickas

5

Nada funcionaba para mí, así que eliminé el archivo .suo, reinicié VS, limpié el proyectado y luego la compilación funcionaría.


5

Parece que hay varias respuestas a esta pregunta, así que agregaré la mía por experiencia personal con la esperanza de que ahorre tiempo / estrés a alguien.

Asegúrese de que todos los proyectos en su solución estén dirigidos a la misma versión .NET.

Similar a OP, hubo 0 errores pero la compilación siguió fallando. Sin embargo, había una entrada de advertencia (enterrada entre varios cientos de advertencias XML inútiles ...) que decía que un proyecto apuntaba a una versión .NET diferente a un proyecto que hacía referencia a ella. Todo el problema era que un proyecto dentro de mi solución apuntaba a .NET 4.5.2, mientras que el resto apuntaba a 4.5.1. Se debe trabajar incluso con esta discrepancia (de ahí por qué era sólo una advertencia) pero, por desgracia, se rompió la construcción.

Lo extraño fue que se compiló / funcionó bien por un tiempo, pero de repente la compilación comenzó a fallar una vez, causando este problema. No estoy seguro de lo que hice para que empiece a quejarse de las diferentes versiones de destino de .NET, pero creo que solo hay algunos misterios en Visual Studio que nunca se resolverán.


1
Resulta que agregué un nuevo proyecto y tenía una versión de marco de destino .Net diferente: lo arreglé y, aunque la compilación todavía falló, pude ver el error que estaba rompiendo la compilación. Gracias.
Fijjit


3

Primero "Limpie la solución", luego Reconstruya la solución.

Si no funciona, cierre la Solución y reinicie la solución.

Pruebe estas cosas, la esperanza definitivamente funciona.


3

Otra posibilidad es que Visual Studio deba ejecutarse como Administrador, esto podría estar relacionado con la implementación en el servidor IIS local u otra necesidad de implementación.


3

Esto puede suceder cuando uno de los proyectos a los que se hace referencia es una versión superior de .NET Framework que su proyecto actual.


3

Tuve este mismo problema y lo rastreé hasta las opciones de la Lista de errores "Build + Intellisense".

Si se selecciona esta opción, no se muestran errores en la lista. Cambie a " Solo compilación " y los errores aparecerán como se esperaba.

Parece un error en Visual Studio. Reiniciar el estudio visual resolvió este problema .


2

Tuve un problema similar después de agregar un nuevo proyecto (llamado "TestCleaner") a mi solución: Falló la compilación, no hubo errores.

Aumenté la verbosidad de la salida (consulte las instrucciones de Richard J Foster) y busqué en la salida "fallido". Rápidamente descubrí qué proyecto estaba fallando y por qué: el proyecto "TestRunner" había fallado con el " error CS0246: no se pudo encontrar el tipo o nombre de espacio de nombres 'TestCleaner' (aunque no se resaltaron problemas en el código).

Verificando las referencias de TestRunner, efectivamente, la referencia a TestCleaner se marcó como no resuelta y faltaba la ruta en las propiedades de referencia. Eliminar y volver a agregar no lo solucionó. De nuevo, no hay explicación de por qué.

referencia sin resolver

Finalmente descubrí la causa: "TestCleaner" estaba usando un marco de destino diferente al de los otros proyectos. Fue .Net 4.5.2; los otros fueron 4.5.


2

Solo por completar y tal vez ayudar a alguien a encontrar el mismo error nuevamente en el futuro, estaba usando la interfaz de metro Mahapps y cambié el XAML de una ventana, pero olvidé cambiar la clase parcial en el código subyacente. En ese caso, la compilación falló sin un error o advertencia, y pude descubrirlo aumentando la verbosidad de la salida de la configuración:

Panel de error

panel de salida


55
también seleccione 'construir solo' no 'construir + intellisense' en el filtro de errores.
niico

2

Yo tuve el mismo problema. La ventana de la lista de errores tiene 2 menús desplegables "Mostrar elementos contenidos en" y "Mostrar problemas generados". Estos nombres son visibles después de pasar el mouse sobre el menú desplegable. El menú desplegable "Mostrar problemas generados" se configuró en "Build + IntelliSense" y después de cambiar a "Build Only" los errores aparecieron en la lista.


2

Para mí, ese Target Frameworkera el problema.

Mi proyecto Target Frameworkfue 4.5.2y el proyecto de referencia Target Frameworkfue 4.6.1.

Una vez que actualicé de mi proyecto Target Frameworka 4.6.1, el problema fue resuelto.


1

¡Me enfrenté al mismo problema! Simplemente elimine la carpeta bin y reinicie su VS. Eso es todo. probado en VS 2013.


Cuando intenté resolver esto eliminando la carpeta bin y obj, lo arregló. También solicité derechos de administrador para eliminar la carpeta obj, por lo que sucedió algo muy extraño.
DAG

1

Lo que me resolvió fue eliminar la .vscarpeta de la raíz de la solución y reiniciar Visual Studio.

También es importante decir que aunque los errores no se mostraban en el panel Lista de errores, todavía estaban presentes en la Salida de la compilación.


1

Intente construir su proyecto desde la línea de comandos de Powershell:

dotnet build

Luego puede ver cualquier error en la salida de la línea de comandos incluso si Visual Studio está jugando a las escondidas con mensajes de error de compilación.


0

Esto me sucedió después de agregar una nueva página a un proyecto asp.net.

Lo que hice fue excluir la página, hacer que se vuelva a compilar con éxito.

Luego agregué la página con todo el código comentado. Éxito.

Luego descomenté el código poco a poco y luego todo funcionó.


0

Tuve el mismo problema después de eliminar un par de formularios. Los errores aparecieron una vez que ingresé al código e hice una "Mostrar definición" para uno de los controles que eliminé.

También estaba apuntando a un marco superior en uno de mis proyectos, por lo que también podría haber sido el problema.


0

Intenté todo pero nada funcionó en mi caso, luego cambié estas configuraciones mencionadas que resolvieron el problema bastante bien para mí. Pruebe si podría ayudar a los últimos espectadores. Estas configuraciones pueden variar en su situación, pero asegúrese de crear todas las DLL incluidas con la misma configuración que mantuvo inicialmente (mencionado en la imagen).Ajustes de configuración

Imagen aqui.

¡Salud!


0

Si el paquete nuget 'Microsoft.Net.Compilers' está instalado, asegúrese de que sea compatible con la versión de su Visual Studio (versión de Build Tools).

Las versiones 1.x significan C # 6.0 (Visual Studio 2015 y actualizaciones). Por ejemplo, 1.3.2

Por lo tanto, no actualice a la versión anterior a 1.x si usa VS2015

https://stackoverflow.com/a/44397905/3862615


0

Tenía un proyecto realmente antiguo en una máquina más antigua. El proyecto se estaba construyendo correctamente cuando apagué la máquina. Hoy recibo un error de compilación pero ningún mensaje de error. Después de probar algunas de las sugerencias de arriba, no hubo suerte.

En Visual Studio 2015, encendí MSBuild detallado en HERRAMIENTAS> Opciones> Proyectos y soluciones> Compilar y ejecutar

Me dio pocos detalles sobre la compilación pero no errores. Después de eso intenté verificar Extensiones y actualizaciones (Herramientas> Extensión y Actualizaciones) y encontré que algunas de ellas necesitaban actualización.

Nuget Package fue el culpable, después de actualizar Nuget: la compilación es exitosa.

ingrese la descripción de la imagen aquí



0

Como todo no funcionó, descubrió que los errores no se muestran al abrir el proyecto como solución (.sln), mientras que el error se muestra al abrir el proyecto como un proyecto.


0

Tuve el mismo problema, cambié Herramientas -> Opciones -> Proyectos y soluciones / Compilar y ejecutar -> Verbosidad del archivo de registro de compilación del proyecto MSBuild [ Diagnóstico ]. ¡Esta opción muestra error en el registro, debido a algunas razones, mi VS no muestra Error en la pestaña Errores!

ingrese la descripción de la imagen aquí

Realice las configuraciones anteriores y en la copia de salida en el bloc de notas / editor de texto y busque el error. Te mostrará todos los errores.


0

Reiniciar Visual Studio funcionó para mí. También intente reiniciar Visual Studio normalmente (no se ejecuta como administrador). Intente reiniciar el sistema y repita el paso anterior.


0

Una forma diferente de reproducir este síntoma:

Agregué un nuevo proyecto a una solución existente y la salida de compilación informó errores como "no se pudo encontrar el tipo o el nombre de espacio de nombres X ...", pero no se presentaron errores en la lista de errores.

Las clases a las que me referí estaban en otros proyectos (a los que se hizo referencia) en la misma solución.

Resultó que por error había seleccionado una versión anterior de .net en el nuevo proyecto. Una vez que cambié a la misma versión que los otros proyectos, todo se construyó sin ningún error.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.