Avertissement comme erreur - Comment les débarrasser

91

Je ne peux pas comprendre comment me débarrasser des erreurs qui, fondamentalement, ne devraient pas interrompre ma compilation dans Visual Studio 2010 et ne devraient pas être des bloqueurs d'affichage, ou du moins je les corrigerai plus tard, mais je ne veux pas que la compilation se contente d'erreur et arrêtez-vous sur ce genre de problèmes.

Par exemple, j'obtiens l'erreur suivante:

Erreur 1 Avertissement comme erreur: le commentaire XML sur 'ScrewTurn.Wiki.SearchEngine.Relevance.Finalize (float)' a une balise paramref pour 'IsFinalized', mais il n'y a pas de paramètre de ce nom C: \ www \ Wiki \ Screwturn3_0_2_509 \ SearchEngine \ Relevance.cs 60 70 Moteur de recherche

pour ce code:

  /// <summary>
  /// Normalizes the relevance after finalization.
  /// </summary>
  /// <param name="factor">The normalization factor.</param>
  /// <exception cref="InvalidOperationException">If <paramref name="IsFinalized"/> is <c>false</c> (<see cref="M:Finalize"/> was not called).</exception>
  public void NormalizeAfterFinalization(float factor) {
      if (factor < 0)
          throw new ArgumentOutOfRangeException("factor", "Factor must be greater than or equal to zero");

      if (!isFinalized)
          throw new InvalidOperationException("Normalization can be performed only after finalization");
      value = value * factor;
  }

J'ai regardé dans le menu Outils -> Options , et je ne vois pas où je peux modifier le compilateur et lui dire de ne pas s'inquiéter des commentaires ou des erreurs basées sur XHTML.

PositiveGuy
la source
11
"Il suffit de réparer le code", ce n'est pas ce que la question pose.
orfdorf

Réponses:

153

Chaque projet dans Visual Studio a une option «traiter les avertissements comme des erreurs». Parcourez chacun de vos projets et modifiez ce paramètre:

  1. Faites un clic droit sur votre projet, sélectionnez "Propriétés".
  2. Cliquez sur "Construire".
  3. Faites passer "Traiter les avertissements comme des erreurs" de "Tous" à "Avertissements spécifiques" ou "Aucun".

L'emplacement de ce commutateur varie en fonction du type de projet (bibliothèque de classes vs application Web, par exemple).

Michael Petrotta
la source
1
Sheesh quel endroit pour cacher ça. J'ai cherché partout mais sous projet.
nportelli
1
Quelqu'un connaît-il la nouvelle solution pour VS2012?
bobble14988
1
Même solution dans VS2012, @ bobble14988.
Michael Petrotta
6
@ bobble14988 Dans VS2012, vous pouvez trouver cette configuration sous Propriétés du projet-> C / C ++ -> Général
Hanan N.Mar
1
Je me demande pourquoi VS 2017 n'honore pas le passage de Tout à Aucun. Je l'ai retourné, tout sauvegardé, nettoyé, reconstruit, quitté VS, nettoyé, reconstruit ad nauseam mais les avertissements sont toujours des erreurs. Le fichier csproj falserecherche ce paramètre. Où diable cela persiste-t-il mal ??? J'abandonne avant la capacité supérieure des développeurs MS à introduire des bogues.
ajeh
13

Pour que Visual Studio Express 2013 se débarrasse de ces problèmes, vous devez procéder comme suit.

Faites un clic droit sur votre projet, cliquez sur Propriétés. Dans la fenêtre des propriétés des menus de gauche, sélectionnez Propriétés de configuration-> C / C ++ -> Général

Dans le côté droit, sélectionnez

Traitez l'avertissement comme une erreur NON

et

Vérification SDL NON

Saleh Enam Shohag
la source
1
La désactivation a SDL Checksfonctionné pour moi sur Visual Studio 2015. (J'ai eu un avertissement de désapprobation traité comme une erreur)
Kevin Smyth
6

La réponse principale est obsolète pour Visual Studio 2015 .

Anglais:

Configuration Properties -> C/C++ -> General -> Treat Warning As Errors

Allemand:

Konfigurationseigenschaften -> C/C++ -> Allgemein -> Warnungen als Fehler behandeln

Ou utilisez cette image comme référence, beaucoup plus facile pour comprendre mentalement rapidement l'emplacement:

entrez la description de l'image ici

lama12345
la source
1

Vous pouvez contrôler le comportement dans un fichier d'en-tête ou un fichier C:

#pragma warning(error:4003) //not enough actual parameters for macro

encore testé avec Visual studio 2015. J'ai un fichier d'en-tête commun 'compl_adaption.h' pour de telles choses, inclus dans tous les fichiers, pour définir ce comportement pour tous mes projets compilés sur Visual Studio.

Hartmut Schorrig
la source
1

Pour traiter tous les avertissements du compilateur comme des erreurs de compilation

  1. Avec un projet sélectionné dans l'Explorateur de solutions, dans le menu Projet, cliquez sur Propriétés.
  2. Cliquez sur l'onglet Compiler. (ou l'onglet Build peut être là)
  3. Cochez la case Traiter tous les avertissements comme des erreurs. (ou sélectionnez le paramètre de construction et définissez les paramètres "Traiter les avertissements comme des erreurs" sur true.)

et si vous voulez vous en débarrasser

Pour désactiver tous les avertissements du compilateur

  1. Avec un projet sélectionné dans l'Explorateur de solutions, dans le menu Projet, cliquez sur Propriétés.
  2. Cliquez sur l'onglet Compiler. (ou l'onglet Build peut être là)
  3. Cochez la case Désactiver tous les avertissements. (ou sélectionnez le paramètre de construction et modifiez les paramètres "Traiter les avertissements comme des erreurs" sur false.)
Alfa Thakkar
la source
0

Dans les propriétés,

Accédez aux propriétés de configuration. Dans cela, allez à C / C ++ (ou quelque chose comme ça). , Cliquez ensuite sur Général, En supprimant la coche dans la case à cocher "Traiter l'avertissement comme des erreurs"

Paroda
la source
0

VS 2019

Juste pour les personnes utilisant VS2019, je pense que d'autres réponses indiquent également le même emplacement.

Yoon5oo
la source