web-dev-qa-db-fra.com

Les générations de projet Visual Studio 2015 ont échoué, mais aucune erreur

Toutes les constructions de mon projet échouent mais aucune erreur ne s’affiche. J'ai essayé de nettoyer et de reconstruire, cela n'a pas fonctionné. 

J'ai changé la verbosité de sortie de MSBuild en 'Diagnostic' en espérant que cela m'aiderait à identifier le problème et maintenant je suis bloqué. Voici à quoi ressemble la sortie:

1>Project 'ProjectMM.Data.Models' is not up to date. Input file 'C:\Projects\ProjectMM\ProjectMM.Data.Models\ProjectMM.Data.Models.csproj' is modified after output file 'C:\Projects\ProjectMM\ProjectMM.Data.Models\bin\Debug\ProjectMM.Data.Models.pdb'.
All packages are already installed and there is nothing to restore.
1>------ Build started: Project: ProjectMM.Data.Models, Configuration: Debug Any CPU ------
2>Project 'ProjectMM.Data' is not up to date. Input file 'C:\Projects\ProjectMM\ProjectMM.Data\ProjectMM.Data.csproj' is modified after output file 'C:\Projects\ProjectMM\ProjectMM.Data\bin\Debug\ProjectMM.Data.pdb'.
2>------ Build started: Project: ProjectMM.Data, Configuration: Debug Any CPU ------
3>Project 'ProjectMM' is not up to date. Input file 'c:\projects\projectmm\projectmm\app_start\bundleconfig.cs' is modified after output file 'C:\Projects\ProjectMM\ProjectMM\bin\ProjectMM.pdb'.
3>------ Build started: Project: ProjectMM, Configuration: Debug Any CPU ------
========== Build: 0 succeeded, 3 failed, 0 up-to-date, 0 skipped ==========
99
Rob Greenlee

J'ai eu le même problème et fermer et ré-ouvrir Visual Studio le résout. 

J'ai également essayé de nettoyer la solution et le nettoyage a échoué.

Il peut y avoir d'autres scénarios où cela ne fait pas l'affaire, mais dans mon cas, le redémarrage a résolu le problème pour moi.

94
carsonevans

Il est possible que vous ne voyiez pas toutes les erreurs de construction. 

En modifiant la liste déroulante après l'icône "Messages" de "Générer + Intellisense" à "Générer uniquement", vous pourrez voir les erreurs générées pendant la génération qui ne sont pas détectées par Intellisense. Voir la capture d'écran ci-dessous:

 Build

Je vois régulièrement des instances de rapports VS2015 "échec de la construction", mais aucune erreur ne s'affiche dans la fenêtre d'erreur. Venant d’un ancien fond de ligne de commande, j’ai finalement consulté la fenêtre de sortie. La fenêtre de sortie indiquait que le compilateur signalait des erreurs, mais ces erreurs n'étaient pas capturées dans la fenêtre d'erreur. Je n'ai jamais vu ce problème sous VS2013.

La fermeture habituelle de VS et sa réouverture n'ont pas effacé cette condition. (Dans VS2013, c’était un moyen courant d’envoyer XAML intellisense à l’arrière pour qu’il cesse de se fixer sur une "erreur" qui avait été corrigée.)

Jusqu'ici, cela a toujours été lié à des erreurs de compilation dans un fichier CS de page XAML. Je ne me souviens pas l'avoir vu dans un fichier CS sans page.

Jusqu'à ce que vous sachiez vérifier la fenêtre de sortie, des choses comme intellisense signalant dans la fenêtre d'erreur des références non valides à des objets du XAML, mais aucune erreur de compilation apparaissant dans la fenêtre d'erreur ne peut TRÈS confusion, car elle "apparaît" comme les erreurs le sont. l'intellisense signalant des erreurs XAML. Mais ils ne sont pas réellement. Les erreurs XAML ne sont que des symptômes de l'échec de la compilation des fichiers CS, sans que leurs erreurs ne soient signalées dans la fenêtre d'erreur.

32
Keith

La suppression du dossier .vs masqué pour a fonctionné pour moi pour VS2015.

(Notez que c'est ici que vivent les fichiers SUO)

9
Mike Asdf

Cela peut se produire lorsque vous faites référence à un projet de version de framework .net différent (v4.5.2 vs v4.5 dans mon cas) Corriger cela résoudra votre problème.

7
Claudiu Constantin

Ce qui m'est arrivé, c’est de changer le fuseau horaire de l’ordinateur à +5: 30 puis de le ramener à -5: 00, c’est ce que confondait VS. Lorsque j'ai redémarré VS, cela a fonctionné à nouveau.

6
M B

J'ai eu ce problème avec VS2015 Update 3 RC et Xamarin (projet partagé .Forms).
Le compilateur ne s’arrête pas, les erreurs ne sont montrées que dans la fenêtre de sortie.
Ceci uniquement pour les projets Xamarin (avec les projets VB.NET tout a fonctionné comme prévu) ...
Pour essayer de trouver la raison du problème, j'ai modifié le résultat de la construction dans VS:
- menu "Outils - Options"
- du panneau de gauche: "Projets et solutions: Construire et exécuter":
- changer "Verbosité de sortie MSBuild" de "Minimal" en "Diagnostic"

Après cela, le compilateur s'est arrêté et l'erreur a été montrée.
Après cela, j’ai réglé l’option de "Diagnostic" sur "Minimal" (comme auparavant) et ... elle a également fonctionné avec "Minimal" (pour être sûr, j’ai également redémarré VS). .. 

Alors .. il semble (du moins dans mon cas) que seul le changement du paramètre (MSBuild Output Verbosity ") a résolu le problème et qu’il s’agit d’un bogue dans VS et/ou dans le logiciel d’intégration Xamarin .. . 

6
FredyWenger

Vérifiez toutes les versions de votre projet Framework et assurez-vous qu'elles sont toutes identiques, ou du moins que le projet A ne fait pas référence au projet B lorsque la version .NET Framework du projet B est supérieure.

5
Daniel Minnaar

Je ne sais pas si je suis le seul à faire face à ce problème. dans mon cas, lorsque j'ai ouvert Visual Studio, le fuseau horaire était à GMT + 1: 00 et la construction a abouti. J'ai ensuite modifié le fuseau horaire en GMT + 5: 30. a échoué sans erreur ni avertissement, puis j’ai redéfini le fuseau horaire sur GMT + 1: 00 et la construction a réussi sans erreur. 

3

Vérifiez les avertissements ..

J'avais la nouvelle bibliothèque de classes avec la cible .Net Framework 4.5 tandis que le projet de référencement était 4.0, ce qui a posé problème de référence.

Après avoir modifié la bibliothèque de classes avec la cible .Net Framework 4.0, cela a fonctionné correctement.

2
user3171101

Rien des réponses ci-dessus ne m'a aidé. Après de nombreuses expériences, j'ai finalement trouvé que le problème était une référence de Microsoft.Net.Compilers v2.10.0 dans l'un des projets. VS 2015 utilise MSBuild v14 qui ne prend pas en charge cette version de Microsoft.Net.Compilers.

2
Petar Petrov

J'ai eu ce problème et il s'est avéré que j'avais une using pointant vers un espace de noms vide. La suppression de cette clause using a résolu le problème.

2
Phate01

Ce que j’ai fait (après tout ce qui précède, et cela ne fonctionnait toujours pas) a été de parcourir tous les dossiers bin et de tout effacer (c’est-à-dire les projets référencés également). 

Cela a fonctionné pour moi, j'espère que ça le fera aussi pour vous.

1
Rodney Ellis

Lorsque vous ouvrez une solution, générez-la, des erreurs de génération ou des avertissements sont signalés dans l'onglet "Résultat", tandis que l'onglet "Erreur" ne signale aucun problème.

 enter image description here

Vous pouvez voir que la configuration de l'onglet "Erreur" est OK ("Construire uniquement" et "Solution complète" sélectionnée).

Notez qu'après une enquête approfondie, j'ai identifié que cela ne se produit que si l'onglet "Erreur" n'était pas encore affiché au démarrage de la construction!

Si vous avez activé "l'onglet d'erreur" avant de construire (ou s'il s'agissait de l'onglet actuel lorsque vous avez lancé Visual), les erreurs/avertissements récemment trouvés s'afficheront correctement:

 enter image description here

C'est comme si "l'onglet d'erreur" n'était initialisé que lorsqu'il devenait visible (ce qui peut être vrai car il faut plus de temps pour apparaître la première fois que vous cliquez dessus ...), et si ce n'était pas le cas, il ne rassemblerait pas la construction résultats...

Jusqu'ici, n'ayant pas de meilleure réponse à ce problème que "activez l'onglet Erreur avant de construire}".

Et je parie que c'est la raison pour laquelle "redémarrer VS" fonctionne parfois. Vous voyez que "l'onglet d'erreur" est vide, vous fermez et rappelez VS, puis, "Erreur" est affiché par défaut lorsque VS a restauré l'onglet actif en cours de la session précédente. Vous construisez et maintenant "l'onglet d'erreur" est rempli ...! Vous avez juste de la chance.

Remarque: a signalé un bogue VS: https://connect.Microsoft.com/VisualStudio/feedback/details/3132689

1
jpo38

Pour moi, ce problème était lié à un paramètre de jeu de règles CodeAnalysis personnalisé "IncludeAll".

Il semble que le compilateur observe ce paramètre:

  <IncludeAll Action="Error" />

Mais IntelliSense a pris l’ACTION par défaut sur l’ID de règle qui était "Warning". Cela expliquerait le comportement observé par @RobertHarvey, dans lequel vous filtrez la sortie par construction uniquement et qui s'affiche sous la forme d'une ERREUR, mais si vous filtrez par Intellisene uniquement, il s'affiche sous la forme WARNING. Filtrer la sortie par défaut Build + Intellisense ne semble pas déterministe!

Ma solution était d'appeler explicitement la règle que je voulais être un avertissement comme un avertissement.

  <Rules AnalyzerId="Microsoft.CodeAnalysis.CSharp" RuleNamespace="Microsoft.CodeAnalysis.CSharp">
    <Rule Id="CS0618" Action="Warning" />
  </Rules>

C'est potentiellement un problème avec Intellisense qui n'observe pas l'option IncludeAll. Voir https://github.com/dotnet/roslyn/issues/7400

1
felickz

Cela peut également se produire lors de la migration d'un projet vers Visual Studio 2015 avec un Framework plus ancien. Vérifiez vos avertissements dans votre liste d’erreurs. Vous pouvez voir que quelque chose comme projet est actuellement .NET version 2.0 et nécessite .NET 3.5 ou supérieur. Si vous trouvez un avertissement similaire, accédez aux propriétés de votre projet et ciblez le .NET Framework requis. 

1
Tyriddik

Essaye ça

Exclure "mstscax.dll" des dépendances a fonctionné pour moi.

0
Emile Cloete

MSBuild.exe est modifié dans le répertoire (C:\Program Files (x86)\MSBuild\14.0\Bin)

donc je viens de remplacer le MSBuild.exe d'un autre pc qui a vs2015.

Maintenant cela fonctionne bien.

0
sabarish

Tiré de this answer 

La compilation a échoué, aucune erreur n’a été affichée dans la fenêtre de sortie.

Pour essayer de trouver la raison du problème, j'ai changé le Build Sortie dans VS: - menu "Outils - Options" - dans le panneau de gauche: "Projets et solutions: Construire et exécuter": - changer "Verbosité de sortie MSBuild" de "Minimal" à "Diagnostic"

Après avoir fait cela, j'ai trouvé la vraie raison qui était en fait une erreur avec les projets de dépendance. Je projetais que je dépendais était construit pour un cadre différent (plus récent) que le mien. Créant ainsi le problème. Les erreurs ne sont sorties que lorsque je mets la verbosité de sortie en diagnostic

0
John Demetriou

Pour moi, c'était un bien atypique. Le problème n'était pas nécessairement que je ne pouvais pas voir une erreur; l'erreur était la suivante:

Le noeud enfant "2" est sorti prématurément. Éteindre. Des informations de diagnostic peuvent être trouvées dans les fichiers du répertoire de fichiers temporaires nommé MSBuild _ *. Failure.txt.

Initialement, la construction se bloquait et ne montrait aucune erreur sauf si vous tentiez de fermer Visual Studio. Après le redémarrage, il se bloque pendant la construction, puis affiche le message ci-dessus. 

La suppression du dossier .vs caché, la solution de reconstruction/nettoyage et le redémarrage de Visual Studio ne fonctionnaient pas. Enlever la propriété attachée a fait; ergo, cela pourrait être le code réel quelque part qui ne fonctionne pas correctement. 

En dernier recours, je supprimerais les modifications récentes les unes après les autres jusqu'à ce que le problème soit résolu, aucune des solutions proposées ne permettant de résoudre ce problème.

Mettre à jour

Étant donné que je suis habitué à développer des applications WPF traditionnelles, je ne savais pas que vous ne pouviez pas avoir des espaces de noms XAML "chaînés" utilisant .s avec UWP. J'essayais de définir une propriété attachée en utilisant

My.Namespace:SomeClass.SomeProperty="SomeValue"

Considérant que cela devrait juste être

MyNamespace:SomeClass.SomeProperty="SomeValue"

Ce n’est pas aussi beau que je le veux, mais c’est la seule façon de faire, apparemment.

0
James M

S'il vous plaît vérifier les avertissements. Parfois, la construction échouait à cause de certaines mises en garde.

0
Krishna

Ce qui a fonctionné pour moi:

La fermeture de tous les documents a résolu le problème pour moi. (Même solution si intelliSense cesse de fonctionner)

(onglet clic droit - Fermer tous les documents)

0
Ziv Weissman

Pour moi, la construction a échoué sans erreur, mais après quelques recherches, j'ai découvert que la référence à MSHTML n'avait pas été trouvée par VS. 

 enter image description here

Le comportement est apparu après une mise à jour de Windows 10. Pour résoudre ce problème, vous devez enregistrer l'assembly à partir du GAC. Pour savoir comment faire, accédez à cette réponse MSHTML DLL sous Windows 10 c'est là que j'ai trouvé ma réponse.

0
Fid

Après la mise à jour d'un fichier dll, il s'est avéré que le nouveau fichier visait une version supérieure de .NET Framework. La solution consistait à accéder aux propriétés du projet et à modifier la structure cible à la version appropriée.

0
usefulBee

Problème de niche: J'ai rencontré le même problème tout à l'heure. Aucune des réponses ci-dessus n'a semblé aider.

Issue était pour un programme console, on ne peut pas marquer la méthode Main () comme async **, ce que je faisais. Pas sûr, pourquoi Visual Studio n'a pas pu préciser pourquoi le projet n'était pas construit (j'ai eu 0 erreurs et 0 avertissements à chaque fois). J'utilise Visual Studio 2015 Enterprise.

Fix: Le travail autour de ça est ici .

0
user3613932