7

MVC4VS2012을 사용하여 Reference.cs 파일을 자동으로 생성하는 Service Reference을 사용하고 있습니다. 내가 만들 때, 나는ServiceReference .cs 파일에 대한 Xml 경고 표시 안 함

읽을 경고를 오류로 수십 얻을 '공개 형식이나 멤버에 대한 누락 된 XML 주석을 ...'난을 참조하는 비슷한 대답 here을 발견

<Target Name="XamlGeneratedCodeWarningRemoved" AfterTargets="XamlMarkupCompilePass1"> 
    <Exec Command="for %%f in (@(XamlGeneratedCodeFiles)) do echo #pragma warning disable > %%f.temp" /> 
    <Exec Command="for %%f in (@(XamlGeneratedCodeFiles)) do type %%f >> %%f.temp" /> 
    <Exec Command="for %%f in (@(XamlGeneratedCodeFiles)) do copy /y %%f.temp %%f" /> 
    <Message Text="XamlGeneratedCodeWarningRemoved: @(XamlGeneratedCodeFiles)" /> 
    </Target> 

그러나 이것은 아마도 때문에 Reference.cs 파일과 함께 작동하지 않습니다 해결 방법은 CSProj 파일에 다음 수정 사항을 추가 제안하는이 blog에서 발견 Xaml을 타겟팅하고 있습니까? 누구든지 Reference.cs 파일로 작업하도록 수정하거나이 문제를 해결할 수있는 다른 방법을 제안 할 수 있습니까?

pragma disable을 자동 생성 코드에 추가하거나 Xml 개의 댓글을 사용 중지 할 수는 없습니다.

답변

6

미리 생성 된 .cs 파일을 즉시 업데이트하면 cause all sorts of issues with Visual Studio, since it will use the in-memory copy of the files이됩니다. 또한 소스 제어 통합으로 파일을 읽기 전용으로 만들고 모든 빌드 후에 파일을 체크인해야하기 때문에 매우 짜증나게됩니다.

서비스 클라이언트를 속성을 조정하여 내부적으로 만들 수도 있습니다. 설정에 따라 문서 생성은 외부에서 볼 수없는 메소드에 대해서는 불평하지 않습니다. 그래도 여전히 StyleCop, 코드 분석 또는 Resharper 경고를 트리거 할 수 있습니다.

보통 내가하는 일은 자신의 Visual Studio 프로젝트에 Service References를 붙이고 생성 된 코드를 Public으로 설정하고 문서 생성을 전체 프로젝트. 이것은 또한 서비스 참조가 당신에 포함 프로젝트.

+0

좋은 아이디어 제시, 시도해 보겠습니다. 그러나 반드시 서비스 참조를 자체 프로젝트로 옮기는 것보다 더 나은 해결 방법이 있을까요? 나는 CSProj 파일이나 MSBuild에 대해 많이 모른다.하지만 링크 된 페이지를 통해 읽은 후에는 내 질문과 같이 비슷한 예제를 사용하여 prebuild를 타겟팅 할 수 있을지 궁금하다. – DevDave

+1

예, 가능하지만 소스 제어 통합으로 인해 결과가 달라질 수 있습니다. 모든 빌드로 인해 보류중인 변경 사항이 여러 번 발생합니다. 지능형 코드를 만들면 파일을 다시 업데이트하지 않아도됩니다. 필자는이 방법을 선호하지만 구성하는 것이 훨씬 쉽고 관련된 모든 프로젝트 구성원을 이해하기 쉽습니다. – jessehouwing

+0

답변 해 주셔서 감사합니다. 다른 질문을해야 할 수도 있지만, 같은 generatd 코드로 StyleCop 경고를 어떻게 처리 할 수 ​​있을지 궁금하십니까? 이 문제를 해결할 때까지 기다려야 할 것이 있습니다! – DevDave

1

나는 또한 내가 Xml 요약 문제를 해결 얻을 수있는 창조에 InternalService Reference을 설정할 수 있다는 것을 발견에 관계없이 같은 바인딩을 사용하는 장점이있다.

아직 생성 된 코드에 대해 StyleCop 오류를 표시하지 않는 문제가 있지만이 문제에 대한 새로운 질문을 만듭니다.

+1

각주 : 서비스 참조가 내부 일지라도 생성 된 이벤트가 공개로 표시되기 때문에 작동하지 않을 수 있습니다. –