2009-05-13 8 views
14

J'ai le code VB.NET dans Visual Studio 2008 en utilisant une méthode obsolète et souhaite supprimer l'avertissement. Malheureusement, suivre la recommandation n'est pas une bonne solution, car il faut utiliser une classe différente, qui fonctionne différemment, de manière importante.Suppression des avertissements obsolètes dans VB.NET

J'essaie de supprimer l'avertissement en utilisant System.Diagnostics.CodeAnalysis.SuppressMessage, mais je ne sais pas quoi écrire en tant que paramètres pour l'attribut et je ne trouve aucune référence pertinente.

Je devrais également dire que, en cliquant avec le bouton droit sur l'erreur dans la liste d'erreurs je n'ai aucune option de 'Suppress Message'.

+3

choses obsolètes sont généralement obsolètes pour une raison cependant, et donc vous devriez certainement avoir un « TODO » dans le code pour vous rappeler de mettre à jour la méthode à la nouvelle façon, dès que vous avez un libre développement cycles. – DevinB

+2

Malheureusement, il n'y a aucun moyen de supprimer le code obsolète sans casser la compatibilité ascendante. –

Répondre

18

Si vous utilisez Visual Studio, vous pouvez effectuer les opérations suivantes.

  1. Faites un clic droit sur le projet et sélectionnez « Décharger »
  2. Faites un clic droit sur le projet et sélectionnez « Modifier SomeProjectName.vbproj »
  3. Vous devriez voir deux balises d'élément XML avec le nom « NOWARN ». Ajouter le numéro 40000 à la liste des numéros déjà présents (assurez-vous de le faire pour chaque étiquette NoWarn dans le fichier)
  4. Enregistrer le fichier
  5. Faites un clic droit sur le projet et sélectionnez recharger (vous devrez fermer le fichier .vbproj)

Cela va se débarrasser de l'avertissement. Le numéro 40000 est le numéro d'erreur VB.Net pour l'avertissement obsolète. Vous pouvez supprimer n'importe quel avertissement de cette manière.

Note: Si la balise NOWARN n'est pas présent, l'ajouter à l'élément principal de PropertyGroup avec les valeurs suivantes

<NoWarn>40000</NoWarn> 
+3

Notez que cela va se débarrasser des avertissements obsolètes _all_ dans votre projet, pas seulement cette instance ... – bdukes

+0

Notez également que vous devez supprimer les balises NoWarn vides du groupe principal pour que cela fonctionne. –

4

Dans VS.NET, vous pouvez faire un clic droit et supprimer les avertissements d'analyse de code. Cela va ajouter l'attribut pour vous. Cependant, l'avertissement "ne pas utiliser les API obsolètes" ne provient pas de l'analyse de code, et donc l'attribut SurpressMessage ne fonctionnera pas. Ceci est un avertissement du compilateur.

Pour VS.NET, vous aurez besoin d'éteindre cet avertissement avec ...

/nowarn:0618 

... à la ligne de commande (ou tout simplement ajouter « 0618 » dans le champ Avertissements sur le csproj Suppress Propriétés). Vous devriez faire la même chose avec le numéro d'avertissement VB.

+0

Je n'ai pas cette option, pour une raison quelconque. Pensé à ajouter cette information trop tard :( –

+0

Mis à jour ma réponse - ce n'est pas un avertissement CA (est-ce?) –

+0

@Martin, votre correct, c'est un avertissement compilateur – JaredPar

0

j'ai pu résoudre ce avec la réponse de JaredPar dans mon projet VB, merci!

Je n'avais même avertissement pour mon C# projet de test que je me suis retiré en ajoutant dans la section d'avertissement suppress de construction dans l'onglet Propriétés du projet.

Veuillez vous rappeler que les codes d'erreur pour VB et C# sont différents.


Si vous souhaitez corriger ces avertissements, vous devez installer et utiliser ODP.NET pour Microsoft OracleClient Developers

Microsoft déprécie System.Data.OracleClient, également appelé Microsoft OracleClient. Les développeurs de fournisseurs Microsoft OracleClient peuvent utiliser cette opportunité pour réévaluer le fournisseur de données à utiliser pour les projets en cours et à venir. Oracle recommande de commencer à créer de nouvelles applications Oracle .NET avec Oracle Data Provider pour .NET (ODP.NET) et de migrer les applications existantes vers ODP.NET.

http://www.oracle.com/technetwork/topics/dotnet/index-085703.html

Questions connexes