web-dev-qa-db-fra.com

Comment trouver la raison de l'échec de la construction sans erreur ni avertissement

J'ai une application Web qui contient une référence aux services WCF.

Lors de la génération à l'aide de Visual Studio 2010, la génération échoue sans erreur ni avertissement. Cependant, la construction de .csproj à l'aide de MsBuild réussit.

Je ne peux pas comprendre ce que je devrais essayer dans Visual Studio pour résoudre/diagnostiquer le problème. Pouvez-vous s'il vous plaît aider?

MODIFIER:

Je découvre que la construction a échoué,

  1. Du texte affiché dans la barre d'état.
    enter image description here

  2. De la fenêtre de sortie:

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

Je viens de rencontrer une situation similaire. Dans mon cas, une action personnalisée (du package MSBuildVersioning disponible sur Nuget.org - http://www.nuget.org/packages/MSBuildVersioning/ ) qui apparaît dans la cible BeforeBuild du fichier csproj échouait sans déclencher la moindre action. message d'erreur à la place normale.

J'ai pu le déterminer en définissant le détail de la production du projet MSBuild (dans la zone de paramètre Options/Projets et Solutions/Construire et exécuter de Visual Studio) sur "Diagnostic", comme indiqué ci-dessous. Cela a ensuite montré que l'action personnalisée (dans mon cas, HgVersionFile) était ce qui avait échoué.

Screen capture from Visual Studio showing the modified setting.

65
Richard J Foster
  • Si la solution contient plusieurs projets, essayez de les construire un à la fois.
  • Essayez de redémarrer Visual Studio.
  • Essayez de redémarrer l'ordinateur.
  • Essayez " Rebuild all "
  • Essayez " Clean Solution " puis supprimez vos fichiers " vspscc " et " vssscc ", puis redémarrez Visual Studio puis " Rebuild All ".
54
Sasse

Build + Intellisense a avalé les messages d'erreur ..__ en les sélectionnant Build Only.

 Screenshot

51
Abu Abdullah

VS (2013 Pro, Win 8.1) le redémarrage l’a fait pour moi. 

19
Ignas Vyšnia

Je veux développer la réponse de Sasse .

Pour résoudre le problème avec Visual Studio 2015 Update 2, je devais construire chaque projet un par un et consulter la fenêtre de sortie après chaque génération.

Un projet m'a donné 

"Le nom de type ou d 'espace de noms' SomeNamespace 'n'existe pas dans l' espace de noms 'BeforeSomeNamespace' (il manque une référence Assembly?)". 

Il n'y avait pas d'erreur dans la fenêtre Liste des erreurs, mais l'assemblage avait un panneau d'avertissement jaune sous "Références". 

J'ai ensuite vu que le projet de référencement ciblé 4.5.1 et le projet référencé 4.6.1. Changer de 4.6.1 à 4.5.1 a permis à la construction globale de réussir.

8
user764754

Rien ne fonctionnait pour moi, alors j'ai supprimé le fichier .suo, redémarré VS, nettoyé le projeté, puis la compilation fonctionnait.

5
Andy

Il semble y avoir plusieurs réponses à cette question, je vais donc ajouter la mienne de mon expérience personnelle en espérant que cela permettra à quelqu'un de gagner du temps/du stress. 

Assurez-vous que tous les projets de votre solution ciblent la même version .NET. 

Semblable à OP, il y avait 0 erreur mais la construction échouait. Cependant, il y avait une entrée d'avertissement (enterrée entre plusieurs centaines d'avertissements XML inutiles ...) indiquant qu'un projet visait une version .NET différente de celle d'un projet qui le référençait. Le problème était que l'un des projets de ma solution visait .NET 4.5.2, alors que les autres visaient 4.5.1. Il devrait fonctionne même avec cet écart (d'où la raison pour laquelle il s'agissait simplement d'un avertissement), mais malheureusement, il a cassé la construction.

Ce qui est étrange, c’est que la construction a fonctionné pendant un certain temps, mais soudainement, la construction a commencé à échouer une fois, ce qui a provoqué ce problème. Je ne suis pas sûr de ce que j'ai fait pour que je commence à me plaindre de différentes versions de la cible .NET, mais j'estime qu'il existe quelques mystères dans Visual Studio qui ne seront jamais résolus.

4
Alan Thomas

Tout d'abord "Nettoyer la solution", puis Reconstruire le solution.

Si ne fonctionne pas, fermez la solution et redémarrez-la.

Essayez ces choses, espérons que ça marche vraiment.

3
Santosh K

Une autre possibilité est que Visual Studio doive être exécuté en tant qu'administrateur. Cela peut être lié au déploiement sur un serveur local IIS ou à un autre besoin de déploiement.

3
Bill Yang

J'ai eu un problème similaire après avoir ajouté un nouveau projet (appelé "TestCleaner") à ma solution: La construction a échoué, aucune erreur.

J'ai augmenté la verbosité de la sortie (voir les instructions de Richard J Foster) et recherché dans la sortie "échec". J'ai rapidement découvert quel projet échouait et pourquoi: le projet "TestRunner" avait échoué avec "error CS0246: le nom de type ou d'espace de nom" TestCleaner "était introuvable" (même si aucun problème n'a été mis en évidence dans le code) .

Vérification des références de TestRunner, la référence à TestCleaner a été marquée comme non résolue et le chemin manquait dans les propriétés de la référence. Supprimer et rajouter n'a pas résolu le problème. Encore une fois, aucune explication pourquoi.

référence non résolue

J'ai finalement découvert la cause: "TestCleaner" utilisait un framework cible différent des autres projets. C'était .Net 4.5.2; les autres étaient 4,5.

2
Ben Whitmore

J'ai supprimé le dossier .vs et redémarré le VS, maintenant fonctionne bien

 enter image description here

2
Arun Prasad E S

J'ai eu ce même problème et j'ai retracé ce problème jusqu'aux options Error List "Build + Intellisense". 

Si cette option est sélectionnée, aucune erreur ne s'affiche dans la liste. Basculez sur "Build Only" et les erreurs apparaissent comme prévu.

Cela ressemble à un bogue dans Visual Studio. Le redémarrage du studio visuel a résolu ce problème.

2
Christlin Panneer

Juste pour compléter et peut-être aider quelqu'un qui rencontrait à nouveau la même erreur à l'avenir, j'utilisais l'interface de métro Mahapps et changeais le XAML d'une fenêtre, mais j'oubliais de changer la classe partielle dans le code-behind. Dans ce cas, la construction a échoué sans erreur ni avertissement et j'ai pu le découvrir en augmentant la verbosité de la sortie des paramètres:

 Error pane

 output pane

2
mcy

J'ai eu le même problème. La fenêtre de la liste des erreurs contient 2 listes déroulantes "Afficher les éléments contenus par" et "Afficher les problèmes générés". Ces noms sont visibles après avoir survolé le menu déroulant. La liste déroulante "Afficher les problèmes générés" était configurée sur "Construire + IntelliSense" et, après le passage à "Générer uniquement", les erreurs apparaissaient dans la liste.

2
Jakub

cela peut se produire lorsqu'un des projets référencés est une version du framework .NET supérieure à celle de votre projet actuel.

2
mcmillab

Pour moi, ce qui a été résolu, a été de supprimer le dossier .vs de la racine de la solution et de redémarrer Visual Studio.

Il est également peut-être important de dire que même si les erreurs ne figuraient pas dans le volet Liste des erreurs, elles étaient toujours présentes dans la sortie de la construction.

1
Ronald Rey

Aller à la fenêtre de sortie, rechercher 'erreur' dans la fenêtre de sortie, TADA

1
Mahdi Khalili

Essayez de construire votre projet à partir de la ligne de commande Powershell:

dotnet build

Vous pouvez ensuite voir les erreurs éventuelles dans la sortie de la ligne de commande, même si Visual Studio lit et cherche avec des messages d'erreur de génération.

0
user3810867

Une façon différente de reproduire ce symptôme:

J'ai ajouté un nouveau projet à une solution existante et la sortie de génération signalait des erreurs telles que "le type ou le nom d'espace de nom X est introuvable ..." mais aucune erreur n'a été présentée dans la liste des erreurs.

Les classes auxquelles j'ai fait référence appartenaient à d'autres projets (référencés) dans la même solution.

Il s’est avéré que j’avais choisi par erreur une version antérieure de .net dans le nouveau projet. Une fois que j'ai changé pour la même version que les autres projets, tout a été construit sans erreur.

0
Devosaur

J'ai eu le même problème, j'ai changé Outils -> Options -> Projets et solutions/Construire et exécuter -> Compte-rendu du fichier journal de construction du projet MSBuild [Diagnostic]. Cette option affiche une erreur dans le journal, pour certaines raisons, mon VS n’affichant pas d’erreur dans l’onglet Erreurs!

 enter image description here

Faites les réglages ci-dessus et la copie de sortie dans le bloc-notes/éditeur de texte et recherchez l'erreur. Il vous montrera toutes les erreurs.

0
Jenish Zinzuvadiya

Étant donné que tout ne fonctionnait pas, il a été constaté que les erreurs n'apparaissaient pas à l'ouverture du projet en tant que solution (.sln), alors que l'erreur apparaissait à l'ouverture du projet en tant que projet.

0
Mosta

Si le package de nuget 'Microsoft.Net.Compilers' est installé, assurez-vous qu'il correspond à la version de Visual Studio (version Build Tools).

Les versions 1.x signifient C # 6.0 (Visual Studio 2015 et mises à jour). Par exemple, 1.3.2

Donc, ne mettez pas à niveau vers la version supérieure à 1.x si vous utilisez VS2015

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

0
Roman M

J'ai eu le même problème après avoir supprimé quelques formulaires. Les erreurs sont apparues une fois que je suis entré dans le code et fait une "Show Definition" pour l'un des contrôles que j'ai supprimé.

Je visais aussi un cadre plus élevé sur l’un de mes projets, alors c’était peut-être aussi le problème.

0
Dennis Kuypers

Le redémarrage de Visual Studio a fonctionné pour moi. Essayez également de redémarrer Visual Studio normalement (non exécuté en tant qu'administrateur). Essayez de redémarrer le système et répétez l’étape ci-dessus.

0
Juned Khan Momin

C'est peut-être dû à la différence version de reportviewer dans votre projet et votre VS

0
user3706939

Cela m'est arrivé après avoir ajouté une nouvelle page à un projet asp.net.

Ce que j'ai fait, c’est d’exclure la page, de la reconstruire avec succès.

Puis j'ai rajouté la page avec tout le code commenté. Succès.

Ensuite, j'ai décommenté le code petit à petit, puis tout a fonctionné.

0
toddmo

J'ai eu un très vieux projet sur une machine plus ancienne. Le projet a été construit correctement lorsque j'ai éteint la machine. Aujourd'hui, je reçois une erreur de construction mais aucun message d'erreur. Après avoir essayé certaines des suggestions ci-dessus, pas de chance. 

Dans Visual Studio 2015, j'ai activé MSBuild détaillé sous TOOLS> Options> Projets et solutions> Construire et exécuter

Il m'a donné peu de détails sur la construction mais pas d'erreurs. Après cela, j'ai essayé de vérifier les extensions et les mises à jour (Outils> Extension et mises à jour) et trouvé que peu d'entre elles nécessitaient une mise à jour.

Nuget Package était le coupable après la mise à jour de Nuget - build est réussi.

 enter image description here

0
spicet

J'ai fait face au même problème! Supprimez simplement le dossier bin et redémarrez votre VS. C'est tout . Testé dans VS 2013.

0
John

J'ai essayé tout mais rien n'a fonctionné dans mon cas, puis j'ai modifié les paramètres mentionnés, ce qui a très bien résolu le problème pour moi ... Essayez si cela pouvait aider les derniers spectateurs mais assurez-vous de créer toutes les DLL, y compris les mêmes paramètres de configuration que ceux conservés au départ (mentionnés dans l’image).  Configuration Settings

 Image here.

À votre santé!

0
Iqra.