c# - 처리되지 - "Visual Studio에서"모든 경고를 제외한 오류 처리... "




visual studio 예외가 처리되지 않음 (6)

"612, 1030, 1701 또는 1702가 아닌 다른 경고가 포함 된 코드를 화이트 보드로 보내고 백 번만 써야하는 사람은 누구나 코드를 검사해야합니다."허용되지 않은 경고가있는 코드는 다시 체크인하지 않습니다. ''

Visual Studio에서 "경고를 오류로 처리"옵션을 선택하여 경고가있는 경우 코드가 컴파일되지 않도록 할 수 있습니다. 우리 팀은이 옵션을 사용하지만 두 가지 경고를 경고로 보관하고 있습니다.

경고를 억제하는 옵션이 있지만 경고로 나타나기를 원하므로 작동하지 않습니다.

우리가 원하는 동작을 얻는 유일한 방법은 모든 C # 경고 번호 목록을 "Specific warnings"텍스트 상자에 입력하는 것입니다. 단, 경고로 취급하려는 두 가지 경우는 예외입니다.

유지 관리의 문제 외에도이 접근법의 가장 큰 단점은 몇 가지 경고에는 숫자가 없으므로 명시 적으로 참조 할 수 없다는 것입니다. 예 : "이 참조를 확인할 수 없습니다. '데이터 ....'어셈블리를 찾을 수 없습니다."

누구든지이 일을하는 더 좋은 방법을 알고 있습니까?

왜 이것이 유용한 지 즉시 알지 못하는 사람들을 명확히합니다. 대부분의 경고가 작동하는 방법에 대해 생각하십시오. 그들은 당신이 방금 쓴 코드에서 조금 벗어난 것이라고 말합니다. 코드를 수정하는 데 약 10 초 정도 걸리므로 코드 기반을보다 깨끗하게 유지합니다.

"폐기 됨"경고는 이와 매우 다릅니다. 경우에 따라이를 수정하는 것은 새로운 메소드 서명을 사용하는 것입니다. 그러나 전체 수업 시간이 끝나고 수십만 줄의 코드를 흩어져 사용하는 경우 수정하는 데 몇 주가 걸릴 수 있습니다. 오래 동안 빌드가 손상되는 것을 원하지 않지만 확실히 그것에 대한 경고를보고 싶습니다. 이것은 가설적인 사례가 아닙니다. 이것은 우리에게 일어났습니다.

리터럴 "#warning"경고도 고유합니다. 자주 체크인하고 싶지만 빌드를 해독하고 싶지는 않습니다.


/ warnaserror / warnaserror- : 618


경고 메시지를 오류로 사용하고 있습니다.

드문 경우지만 허용 가능한 경고가 표시 될 때 (예 : 사용하지 않는 구성원을 참조하거나 XML 직렬화 클래스에서 설명서가 누락 된 경우) #pragma disable을 사용하여 명시 적으로 억제 해야합니다 (선택적으로 클린 코드를 제공하지 않는 이유가 제공 될 수도 있음) 함께 코멘트).

이 지시어가 있으면 어떤 질문이있는 경우 에이 경고 위반을 수락 한 사람 (버전 제어의 "비난"조치로)을 알 수 있습니다.


나에게는 루트 문제가 정말로 당신의 치료 경고와 오류 (분명히 그렇지 않은 경우)의 조합이며이를 위반하는 체크 인 허용의 명백한 정책이라고 생각됩니다. 당신이 말했듯이, 당신은 경고에도 불구하고 계속 일할 수 있기를 원합니다. 무시할 수있는 몇 가지 경고 만 언급했지만 팀원 중 다른 사람이 경고를 받으면 어떻게해야합니까? 수정하는 데 시간이 오래 걸릴까요? 너도 그걸 무시하고 싶지 않니?

논리적 인 해결책은 1) 코드가 컴파일되지 않으면 체크인을 허용하지 않습니다 (즉, 경고를 작성한 사람이 실제로 빌드를 파산했기 때문에 경고를 작성한 사용자가이를 수정해야 함을 의미합니다) 또는 2) 경고를 경고로 처리합니다. 경고를 오류로 간주하고 정기적으로 실행하여 코드에 경고가 없도록하는 구성과 경고로만 처리하는 구성을 작성하여 다른 사람이 경고를 표시 한 경우에도 작업 할 수 있도록합니다.


왜 당신은 오류로 취급하지 않는다는 경고를 계속보고 싶습니까? 왜 이것이 바람직한지 혼란 스럽네요. 당신이 고쳐 주든 그렇지 않든간에.

두 가지 다른 빌드 / 솔루션 파일이 작동합니까? 아니면 스크립트를 복사하여 경고 / 경고 수준을 수정하는 것이 적합할까요? 아마도 컴파일러의 일부 실행이 스 쿼크되기를 원하지만 다른 것들은 계속 가고 싶을 것입니다.

그래서 다른 컴파일러 스위치가 좋은 방법 인 것 같습니다. 디버그 나 릴리스라는 레이블이 붙은 레이블과 경고에 대해 적절하게 레이블이 지정된 다른 레이블로이 작업을 수행 할 수 있습니다.


프로젝트 파일에 WarningsNotAsErrors 태그를 추가 할 수 있습니다.

<PropertyGroup>
    ...
    ...
    <WarningsNotAsErrors>618,1030,1701,1702</WarningsNotAsErrors>
</PropertyGroup>

참고 : 612618 은 둘다 구식에 대한 경고입니다. 차이점을 모릅니다. 그러나 제가 작업하고있는 프로젝트는 경고 618과 함께 더 이상 사용되지 않는 것을보고합니다.





msbuild