2009-05-13 16 views
14

Ho codice VB.NET in Visual Studio 2008 utilizzando un metodo obsoleto e vorrei sopprimere l'avviso. Sfortunatamente, seguire la raccomandazione non è una buona soluzione, perché richiede l'utilizzo di una classe diversa, che funziona in modo diverso, in modi importanti.Soppressione di avvisi obsoleti in VB.NET

Sto cercando di sopprimere l'avviso utilizzando System.Diagnostics.CodeAnalysis.SuppressMessage, ma non so cosa scrivere come parametri per l'attributo e non riesco a trovare alcun riferimento rilevante.

Devo anche dire che, facendo clic con il pulsante destro del mouse sull'errore nell'elenco degli errori, non ho alcuna opzione "Elimina messaggio".

+3

cose obsoleti sono in genere obsoleto per un motivo però, e così si dovrebbe assolutamente avere un "TODO" nel codice per ricordare di aggiornare il metodo per la nuova via, non appena avete un po 'libero sviluppo cicli. – DevinB

+2

Sfortunatamente, non c'è modo di rimuovere il codice obsoleto senza rompere la compatibilità con le versioni precedenti. –

risposta

18

Se si utilizza Visual Studio, è possibile eseguire quanto segue.

  1. clic destro del mouse sul progetto e selezionare "scaricare"
  2. clic destro del mouse sul progetto e selezionare "Modifica SomeProjectName.vbproj"
  3. Dovreste vedere due tag degli elementi XML con il nome "nowarn". Aggiungere il numero 40000 alla lista dei numeri già presenti (assicuratevi di fare questo per ogni tag nowarn nel file)
  4. Salvare il file
  5. clic destro del mouse sul progetto e selezionare ricarica (si dovrà chiudere la .vbproj file)

Questo eliminerà l'avviso. Il numero 40000 è il numero di errore VB.Net per l'avviso obsoleto. Puoi sopprimere ogni avviso in questo modo.

Nota: Se il tag nowarn non è presente, aggiungerlo all'elemento PropertyGroup principale con i seguenti valori

<NoWarn>40000</NoWarn> 
+3

Nota che questo eliminerà tutti gli avvisi obsoleti nel tuo progetto, non solo questa istanza ... – bdukes

+0

Si noti inoltre che è necessario eliminare qualsiasi tag NoWarn vuoto dal gruppo principale affinché funzioni. –

4

In VS.NET è possibile fare clic con il pulsante destro del mouse e sopprimere gli avvisi di analisi del codice. Questo aggiungerà l'attributo per te.

Tuttavia, l'avviso "non utilizzare API obsolete" non proviene dall'analisi del codice, pertanto il valore di attributi di SurpressMessage non funzionerà. Questo è un avvertimento del compilatore.

Per VS.NET avresti bisogno di spegnere questo avvertimento con ...

/nowarn:0618 

... nella riga di comando (o semplicemente l'aggiunta di "0618" nel campo Avvertenze reprimere sul csproj proprietà). Dovresti fare lo stesso con qualunque sia il numero di avviso VB.

+0

Non ho questa opzione, per qualche motivo. Ho pensato di aggiungere le informazioni troppo tardi :( –

+0

Aggiornato la mia risposta - questo non è un avviso CA (è vero?) –

+0

@Martin, è corretto, è un avvertimento del compilatore. – JaredPar

0

sono stato in grado di risolvere questo con la risposta di JaredPar nel mio progetto VB, grazie!

ho avuto stesso avvertimento per il mio progetto di test C# che mi hanno rimosso con l'aggiunta di 618 nella sezione warning sopprimere di costruzione Tab in Proprietà del progetto.

Ricordare che i codici di errore per VB e C# sono diversi.


Se si desidera correggere questi avvisi, è necessario installare e utilizzare ODP.NET per Microsoft OracleClient Developers

Microsoft sta deprecando System.Data.OracleClient, noto anche come Microsoft OracleClient. Gli sviluppatori di provider Microsoft OracleClient possono sfruttare questa opportunità per rivalutare il fornitore di dati da utilizzare per i progetti attuali e futuri. Oracle consiglia di avviare la creazione di nuove applicazioni Oracle .NET con Oracle Data Provider per .NET (ODP.NET) e di migrare le applicazioni esistenti su ODP.NET.

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