Câu hỏi VS2010: Các tệp tự tạo và tài liệu XML


Điều này thực sự chỉ là hỏi lại câu hỏi này được hỏi về Visual Studio 2008. VS2010 có cung cấp bất kỳ tính năng nào để loại bỏ cảnh báo trình biên dịch CS1591 đối với mã được tạo tự động không?

CS1591: Missing XML comment for publicly visible type or member

Để báo câu hỏi cho VS2008:

Đây là một ít phiền toái hơn một   vấn đề. Dự án của tôi chứa một số   các tệp được tạo tự động (sử dụng   mgmtclassgen.exe). Khi tôi tạo   Tài liệu XML, đẹp mắt của tôi   thư viện nhận xét bị cản bởi xml   cảnh báo tài liệu từ những   tập tin autogen.

Có cách nào để hoặc là a) ngăn chặn   tạo tài liệu cho những   tệp hoặc b) chặn cảnh báo CS1591   chỉ cho một tập hợp các tập tin? Tôi rõ ràng   không muốn sửa đổi các tệp   được tạo tự động, ngay cả khi chỉ cần thêm   pragmas đàn áp.

CHỈNH SỬA: Trong trường hợp của tôi, các tệp vi phạm được tạo bởi WCF RIA Services, do đó, tệp tạo ra các lỗi là lớp WebContext được tạo tự động (MyProject.BusinessApplication.Web.g.cs).

Tôi không thể sửa đổi tệp này vì nó được tạo khi đang di chuyển, mọi thay đổi sẽ bị xóa. Tôi cũng không muốn vô hiệu hóa cảnh báo trên toàn cầu vì nó hữu ích trong mã không được tạo tự động của tôi.


19
2017-09-02 18:59


gốc




Các câu trả lời:


Tôi đã gặp sự cố tương tự với các lớp khung thực thể được tạo tự động. Tôi đã giải quyết nó bằng cách sửa đổi tệp mẫu. Điều này rõ ràng sẽ không làm việc cho tất cả các kịch bản được tạo tự động và nó có thể không áp dụng cho kịch bản RIA cụ thể của bạn, nhưng tôi sẽ đăng ở đây cho bất kỳ ai khác có thể gặp vấn đề tương tự.

Mở tệp mẫu (something.tt) và tìm phần nhận xét xml được tạo tự động

//------------------------------------------------------------------------------
// <auto-generated>
//    This code was generated from a template.
//
//    Manual changes to this file may cause unexpected behavior in your application.
//    Manual changes to this file will be overwritten if the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

Thêm dòng sau ngay sau khối nhận xét

#pragma warning disable 1591 

Một chút dưới đây, bạn nên tìm nơi khối không gian tên kết thúc. Nó có thể sẽ giống như thế này

if (!String.IsNullOrEmpty(ObjectNamespace))
{
    PopIndent();
#>
}

Đặt dòng sau đây sau khi đóng ngoặc

#pragma warning restore 1591

Nếu mọi thứ hoạt động chính xác, bất cứ khi nào các lớp của bạn được tạo tự động bởi Entity Framework, chúng sẽ được bao bọc bởi các lệnh pragma disable / restore. Điều này sẽ ngăn chặn các cảnh báo về không có các chú thích XML trong các lớp EF của bạn mà không ngăn chặn các cảnh báo ở cấp dự án.


12
2017-08-08 15:55





Bài viết sau đây có thể kích hoạt một số mẹo để giải quyết vấn đề: http://lvquoc.blogspot.com/2010/11/disable-xml-comment-warning-in-workflow.html

Phần quan trọng của bài viết là bình luận của Alan McBee: để vô hiệu hóa các cảnh báo được tạo trong cửa sổ dòng công việc VS2012 + thêm phần này vào cuối tệp dự án của bạn:

<Target Name="XamlGeneratedCodeWarningRemoved" AfterTargets="MarkupCompilePass2">
  <Exec Command="for %%f in (@(_GeneratedCodeFiles)) do echo #pragma warning disable 1591 > %%f.temp" />
  <Exec Command="for %%f in (@(_GeneratedCodeFiles)) do type %%f >> %%f.temp" />
  <Exec Command="for %%f in (@(_GeneratedCodeFiles)) do echo #pragma warning restore 1591 >> %%f.temp" />
  <Exec Command="for %%f in (@(_GeneratedCodeFiles)) do move /y %%f.temp %%f" />
  <Message Text="Xaml Generated Code Warnings Removed: @(_GeneratedCodeFiles)" />
</Target>

2
2017-12-01 17:45



rất thú vị, - Andrew Garrison


Tương tự như giải pháp của Quam Loc, có thể vô hiệu hóa các cảnh báo trong các tệp được tạo RIA bằng cách sử dụng một mục tiêu xây dựng:

<Target Name="CreateRiaClientFilesTaskDisableWarnings" AfterTargets="CreateRiaClientFiles">
  <Exec Command="for %%f in (@(RiaClientGeneratedFiles)) do echo #pragma warning disable &gt; %%f.temp" />
  <Exec Command="for %%f in (@(RiaClientGeneratedFiles)) do type %%f &gt;&gt; %%f.temp" />
  <Exec Command="for %%f in (@(RiaClientGeneratedFiles)) do attrib -r %%f" />
  <Exec Command="for %%f in (@(RiaClientGeneratedFiles)) do move /y %%f.temp %%f" />
  <Exec Command="for %%f in (@(RiaClientGeneratedFiles)) do attrib +r %%f" />
  <Message Text="CreateRiaClientFilesTaskDisableWarnings: @(RiaClientGeneratedFiles)" />
</Target>

Tôi vừa mới đăng về nó blog của tôi.


1
2018-05-09 09:44





Tôi đã phải đối mặt với vấn đề tương tự. Những gì tôi đã làm là ở bất kỳ trang nào nếu không có bất kỳ Nhận xét XML nào về Không gian tên, chỉ cần thêm dòng mã bên dưới và bạn sẽ không gặp lỗi tương tự.

'/// <summary>
/// Namespace provides implementation for ABC classes.
/// </summary>
[System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
class NamespaceDoc
{
}'

0
2017-08-28 05:16