7

Làm việc với MVC4VS2012, Tôi đang sử dụng một Service Reference, tự động tạo tệp Reference.cs. Khi tôi xây dựng, tôi nhận được hàng chục cảnh báo là lỗi mà đọcNgăn chặn cảnh báo Xml cho ServiceReference .cs tệp

'bình luận XML Thiếu cho loại hiển thị công khai hoặc thành viên ...'

Tôi đã tìm thấy một câu trả lời tương tự here, có sự tham khảo một workaround tìm thấy trong blog này, điều này gợi ý thêm việc sửa chữa sau vào CSProj file:

<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> 

Nhưng điều này dường như không làm việc với các tập tin Reference.cs, có lẽ vì nó đang nhắm mục tiêu Xaml? Bất cứ ai có thể cho tôi biết làm thế nào tôi có thể sửa lỗi này để làm việc với Reference.cs tập tin hoặc đề nghị một cách khác để có được xung quanh vấn đề này?

Tôi không thể chỉ thêm pragma disable vào mã được tạo tự động hoặc vô hiệu hóa Xml nhận xét.

Trả lời

6

Cập nhật các tệp .cs được tạo trước khi di chuyển sẽ cause all sorts of issues with Visual Studio, since it will use the in-memory copy of the files. Và nó sẽ rất khó chịu do sự tích hợp Kiểm soát Nguồn làm cho các tệp chỉ đọc và yêu cầu các tệp cần được kiểm tra sau mỗi lần xây dựng.

Bạn cũng có thể đặt bên trong Dịch vụ của mình bằng cách tinh chỉnh thuộc tính của ứng dụng. Tùy thuộc vào cài đặt của bạn, việc tạo tài liệu sẽ không khiếu nại về bất kỳ phương thức nào không hiển thị bên ngoài. Điều này có thể vẫn kích hoạt cảnh báo StyleCop, Code Analysis hoặc Resharper mặc dù ...

Vì vậy, những gì tôi thường làm là tôi gắn các tham chiếu dịch vụ trong dự án Visual Studio của riêng họ, tạo mã được tạo công khai và tắt tạo tài liệu cho toàn bộ dự án. Điều này cũng có lợi thế là tham chiếu dịch vụ của bạn sẽ sử dụng cùng một liên kết bất kể dự án bạn bao gồm nó.

+0

ý tưởng hay, Jesse, sẽ thử cái này. Nhưng chắc chắn có một cách tốt hơn để giải quyết điều này hơn là di chuyển các tài liệu tham khảo dịch vụ cho dự án riêng của mình? Tôi không biết nhiều về các tệp CSProj hoặc MSBuild nhưng sau khi đọc qua trang được liên kết của bạn, tôi tự hỏi liệu prebuild có thể được nhắm mục tiêu bằng một ví dụ tương tự như trong câu hỏi của tôi không? – DevDave

+1

Có, nó có thể, nhưng với sự tích hợp kiểm soát nguồn đi hạt như một kết quả. Mọi bản dựng sẽ dẫn đến một số thay đổi đang chờ xử lý. Bạn có thể làm cho mã của bạn thông minh để nó sẽ không cập nhật lại các tập tin mặc dù, mà nên làm việc. Mặc dù vậy, tôi thích điều này, dễ cấu hình và dễ hiểu hơn đối với tất cả các thành viên của dự án liên quan. – jessehouwing

+0

Cảm ơn câu trả lời của bạn. Tôi có thể phải đặt một câu hỏi khác, nhưng chỉ cần tự hỏi làm thế nào bạn sẽ nhận được xung quanh cảnh báo StyleCop với cùng một mã generatd? Khi tôi có điều đó để mong đợi khi tôi giải quyết vấn đề này! – DevDave

1

Tôi cũng thấy rằng tôi có thể thiết lập Service Reference khi tạo ra, xung quanh vấn đề tóm tắt Xml.

Mặc dù điều này vẫn khiến tôi gặp vấn đề về việc loại bỏ lỗi StyleCop cho mã được tạo nhưng tôi sẽ tạo một câu hỏi mới cho điều này.

+1

Chú thích: Điều này có thể không hoạt động, vì các sự kiện được tạo được đánh dấu là công khai ngay cả khi tham chiếu dịch vụ là nội bộ. –

Các vấn đề liên quan