2011-01-04 13 views
10

Podobają nam się ustawienia Ostrzeżenia jako błędy ponieważ mamy politykę nie sprawdzania kodu z ostrzeżeniami i jest to jedyny skuteczny sposób, jaki znaleźliśmy, aby go wymusić.Ostrzeżenia jako błędy lub przestarzały atrybut w Visual Studio

Lubimy również używać przestarzałego atrybutu , aby zgłaszać metody, których nie należy już używać.

Problem jest to, że dodanie atrybutu Przestarzałe do metody lub klasy natychmiast powoduje mnóstwo projektów nie budować (nie wspominając problemów, jeśli wywołanie .NET API jest przestarzała).

Czy ktoś ma dobre rozwiązanie tego problemu?

Chcemy widoczne, trudno zignorować wskaźnik, że jesteś przy użyciu przestarzałej API ale nie powoduje kompilacja się nie powiedzie. Chcemy zobaczyć ostrzeżenia w IDE i w kompilacjach CI.

+1

+1. Można pominąć ostrzeżenie 618 (CS0618): "Element klasy został oznaczony atrybutem Przestarzały" we właściwościach projektu. Niestety to ukrywa wszystkie ostrzeżenia i pokonuje cel. Chcielibyśmy również mieć "niewielkie ostrzeżenie" w tym zakresie. – TrueWill

+2

Myślę, że jest to duplikat http://stackoverflow.com/questions/267168/treat-all-warnings-as-errors-except-in-visual-studio – TheHurt

+0

@TheHurt - Good find; Nie widziałem tego! @Kevin - zobacz ten link. – TrueWill

Odpowiedz

1

Prostym rozwiązaniem byłoby mieć konfigurację kompilacji (np danej konfiguracji kompilacji debugowania) bez ostrzeżeń jak błędów. Jeśli jednak chodzi o to, aby oznaczyć deweloperom, że coś jest nie tak z kompilacją, nie jest to dobre, ponieważ zapominają zrobić kompilację wydania, zanim się odprawią.

Alternatywnie, zamiast używać "ostrzeżeń jako błędów" "możesz ustawić swój zestaw reguł, aby sam generował błędy, zamiast podnosić ostrzeżenia. Będzie to oznaczać, oczywiście, że ostrzeżenia inne niż CA nie spowodują błędów.

Najlepszym rozwiązaniem, jak sądzę, byłoby obsługiwać go po stronie serwera. Idealnie byłoby mieć jakąś gated checkin żeby repozytorium kodu odrzuca zobowiązuje, które nie budują z jego definicji kompilacji (z ostrzeżeniami-as-błędów na, a programiści mogą zostawić ostrzeżenia-as-off błędy). Podejrzewam, że jest to jednak tylko funkcja TFS-2k10.