Visual Studio Vô hiệu hóa thiếu cảnh báo nhận xét XML


198

Tôi có một dự án với hơn 500 Missing XML Commentcảnh báo. Tôi biết tôi có thể xóa tính năng Nhận xét XML hoặc dán các đoạn nhận xét trống ở mọi nơi, nhưng tôi thích một giải pháp chung hơn, nơi tôi có thể thực hiện một thay đổi để vô hiệu hóa tất cả các cảnh báo thuộc loại này.

Những gì tôi làm bây giờ là đặt

///<Summary>
/// 
///</Summary>

hoặc là

#pragma warning disable 1591

chỉ tò mò nếu nó sẽ có thể.


3
Câu hỏi thực tế là gì? Bạn có muốn biết một cách khác để vô hiệu hóa các cảnh báo được tạo khi thiếu các nhận xét XML không? Trong các thuộc tính của dự án, thay đổi thành tab "Build" và bỏ chọn "tệp tài liệu XML". Tuy nhiên, tôi đề nghị không ngăn chặn các cảnh báo mà thêm tài liệu còn thiếu.
Gorgsenegger

Điều đó hoàn toàn chính xác nhưng chỉ tò mò về việc làm thế nào nếu chúng ta có thể giải quyết vấn đề này từ một nơi vì tôi chưa quen với điều này.
Nivid Dholakia

Những câu hỏi liên quan này có thể giúp: stackoverflow.com/questions/11444631/
Thẻ

1
Cảnh báo chỉ xuất hiện cho các thành viên hiển thị cho các hội đồng khác. Thông thường mọi người tạo ra các lớp (và giao diện, enum, v.v.) publickhông có lý do chính đáng. Trong trường hợp đó, một cách khắc phục dễ dàng (và theo ý kiến ​​của tôi là tốt) là chỉ cần loại bỏ từ public(hoặc thay thế nó bằng một internaltừ khóa dư thừa , tùy thuộc vào kiểu ưa thích) từ loại kèm theo ngoài cùng. Sau đó, tất cả các cảnh báo CS1591 về loại này và các thành viên của nó biến mất. Tất nhiên bạn vẫn có thể phải giữ một số loại public. Nhưng trong trường hợp đó, công bằng là bạn yêu cầu ghi lại các phần công khai của họ đúng cách.
Jeppe Stig Nielsen

Câu trả lời:


318

Như đã đề xuất ở trên, nói chung tôi không nghĩ rằng những cảnh báo này nên được bỏ qua (bị loại bỏ). Tóm lại, những cách xung quanh cảnh báo sẽ là:

  • Suppress cảnh báo bằng cách thay đổi dự án Properties> Build> Errors and warnings> Suppress warningsbằng cách nhập 1591
  • Thêm các thẻ tài liệu XML ( GhostDoc có thể khá tiện dụng cho việc đó)
  • Bỏ qua cảnh báo thông qua các tùy chọn trình biên dịch
  • Bỏ chọn "file tài liệu XML" hộp kiểm trong dự án Properties> Build>Output
  • Thêm #pragma warning disable 1591ở đầu tệp tương ứng và #pragma warning restore 1591ở dưới cùng

178
Xin vui lòng, không sử dụng GhostDoc. Nếu một nhận xét có thể được suy ra từ tên phương thức, nó có thể được suy ra tốt hơn bởi một con người. Điều này thêm giá trị bằng không. Thời gian đó sẽ tốt hơn dành để chúc mừng bạn về một phương pháp được đặt tên tốt.
JRoughan

24
Tôi phải không đồng ý, GhostDoc giúp tôi nhanh chóng thêm danh sách các thông số cần thiết và thẻ trả về (nếu phương thức này không có giá trị). Tôi sử dụng và thích nó, và tôi biết khá nhiều người khác cũng làm như vậy. Tuy nhiên, sự thật là mô tả trong bản tóm tắt có thể cần một số chỉnh sửa, nhưng điều này được tính cho hầu hết các tự động hóa trong các trường hợp như vậy.
Gorgsenegger

32
Nếu tất cả những gì nó làm là thêm các trình giữ chỗ thì đó sẽ là một trình tiết kiệm thời gian ít ỏi, nhưng số lượng cơ sở mã mà tôi đã thấy nơi các nhà phát triển rời khỏi văn bản được tạo ra khiến chúng tôi nghĩ rằng chúng tôi không đủ chín chắn để sử dụng nó. Nhận xét là một cái nạng (thường là cần thiết) cho mã không tự viết tài liệu và bằng cách cung cấp các phím tắt, công cụ này có lợi ích ròng âm đối với mã thế giới.
JRoughan

25
@JRoughan: Tôi hoàn toàn đồng ý. Điều tồi tệ nhất là, cuối cùng khi bạn tìm thấy thời gian để ghi lại mã của mình một cách chính xác, các công cụ này làm cho không thể biết mức độ bao phủ tài liệu thực của bạn kỹ lưỡng đến mức nào. Bất kỳ công cụ tính toán bảo hiểm tài liệu sẽ luôn luôn đọc 100%. Vì vậy, bạn thực sự phải trải qua nhiệm vụ mệt mỏi về tinh thần là đọc mọi bình luận XML và đánh giá xem nó có đủ để ghi lại mã không. Đã làm điều này trong một dự án lớn, tôi có thể nói với bạn, nó không vui chút nào. Xin mọi người! Không sử dụng các công cụ tài liệu tự động này!
HiredMind

36
@Gorgsenegger: Không phải trong trường hợp này. Nó không phải là công cụ thiếu sót, đó là toàn bộ khái niệm. VS2012 thêm các sơ khai phương thức / tham số vào các nhận xét XML được tiêu chuẩn hóa nếu đó là những gì bạn muốn. Nhưng việc thêm các bình luận chỉ đơn giản là các phiên bản dài hơn của tên phương thức và gọi nó là tài liệu chỉ là sự lộn xộn trực quan.
HiredMind

74

Vô hiệu hóa cảnh báo: Chuyển đến thuộc tính Project (Nhấp chuột phải vào dự án của bạn và chọn Thuộc tính từ menu ngữ cảnh) Chuyển đến tab Build nhập mô tả hình ảnh ở đây

Thêm 1591 vào hộp văn bản cảnh báo Suppress nhập mô tả hình ảnh ở đây


4
Hoạt động như một bùa mê với các danh sách được phân tách bằng dấu phẩy: "S125, CS1591, S1172". Sau khi xây dựng các cuộc chiến biến mất.
AFD

9
Cảm ơn vì đã trả lời câu hỏi và không giảng về việc có nên đàn áp các cảnh báo hay không!
Dal

31

Bạn cũng có thể sửa đổi .csprojtệp của dự án của bạn để bao gồm một <noWarn>1591</noWarn>thẻ bên trong đầu tiên <PropertyGroup>. Nguyên văn từ bài viết của Alexandru Bucur Tại đây

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    ...
    <NoWarn>1591</NoWarn>
  </PropertyGroup>
  ...
</Project>

3
Đây sẽ là câu trả lời cho những ngày hiện tại.
Edgar Salazar

3
Đã đồng ý. Hầu hết các câu trả lời không hoạt động với các biên tập viên khác, chẳng hạn như Visual Studio Code.
Krzysztof Czelusniak

9

Đi vào các thuộc tính dự án và bỏ chọn tùy chọn tạo tài liệu XML.

Bỏ chọn tệp tài liệu XML

Biên dịch lại và các cảnh báo sẽ biến mất.


2
Đây là một cách tiếp cận tốt miễn là bạn không cần tạo tài liệu XML và bạn không bận tâm rằng các nhận xét XML sẽ không được xác thực.
Keith

1
Điều này không hoạt động nếu bạn muốn giữ các cảnh báo từ các tệp không được tạo tự động. Loại bỏ tất cả các cảnh báo chỉ để thoát khỏi một tập hợp các cảnh báo có vẻ hơi quá mức đối với tôi. Ngoài ra, ở hầu hết các công ty, thông thường thực sự tạo ra các nhận xét XML trong tất cả các tệp không chứa mã được tạo tự động. Ngoài ra, người dùng đã yêu cầu một giải pháp không chỉ đơn giản là loại bỏ tính năng nhận xét XML, vì vậy điều này không trả lời câu hỏi.
SubliemeSiem

4

Đây sẽ là một nhận xét nhưng tôi không thể làm cho nó phù hợp với giới hạn:

Tôi rất thích vô hiệu hóa chúng chỉ dành cho nhập khẩu Reference.cs và WebService. Trên thực tế tôi đang sử dụng một macro để làm điều đó cho một tập tin. Chỉ cần mở tệp và thực thi macro này (Đã kiểm tra trong VS2010):

Sub PragmaWarningDisableForOpenFile()
    DTE.ActiveDocument.Selection.StartOfDocument()
    DTE.ActiveDocument.Selection.NewLine()
    DTE.ActiveDocument.Selection.LineUp()
    DTE.ActiveDocument.Selection.Insert("#pragma warning disable 1591")
    DTE.ActiveDocument.Selection.EndOfDocument()
    DTE.ActiveDocument.Selection.NewLine()
    DTE.ActiveDocument.Selection.Insert("#pragma warning restore 1591")
    DTE.ActiveDocument.Save()
End Sub

Có thực sự không có cách nào để làm điều này tự động? Bạn sẽ phải làm lại điều này mỗi khi mã được tạo tự động ghi đè lên tệp.


2
Tôi nghĩ cảnh báo này không nên hiển thị cho nội dung được tạo tự động, có thể bạn sẽ phải kiểm tra cài đặt tương ứng trong các thuộc tính của dự án.
Gorgsenegger

1
Không, tất cả đều được hiển thị bằng cách chỉ bật cảnh báo Nhận xét XML. Và không có tùy chọn như vậy để vô hiệu hóa nó chỉ cho mã tự phát. Do đó bị bắn tỉa khi bạn cần tái tạo mã.
Kjellski

Theo thuộc tính dự án Code Analysis, có một tùy chọn Supress results from generated code. Phải chạy lại một macro sau mỗi lần tái tạo mã không thực sự là một giải pháp IMO. Nếu tùy chọn trên không phù hợp với bạn, có lẽ trình tạo mã có thể được điều chỉnh để tự động thêm chỉ thị pragma?
Laoujin

@Laoujin cảm ơn vì nhận xét của bạn, nhưng như tôi đã đề cập, tôi cũng không thích giải pháp này. Tôi không thể thấy lý do cho downvote, tôi đã sử dụng cài đặt mà bạn đề cập mà không thành công. Bạn có muốn thử giải pháp nhập khẩu WebService không?
Kjellski
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.