Visual Studio ปิดใช้งานคำเตือนข้อคิดเห็น XML ที่ขาดหายไป


199

ฉันมีโครงการที่มีMissing XML Commentคำเตือนมากกว่า 500 รายการ ฉันรู้ว่าฉันสามารถลบคุณลักษณะความคิดเห็น XML หรือวางตัวอย่างความคิดเห็นที่ว่างเปล่าได้ทุกที่ แต่ฉันต้องการโซลูชันทั่วไปที่ฉันสามารถทำการเปลี่ยนแปลงหนึ่งอย่างซึ่งปิดการใช้งานคำเตือนทั้งหมดของประเภทนี้

ตอนนี้ฉันกำลังทำอะไรอยู่

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

หรือ

#pragma warning disable 1591

แค่อยากรู้ว่ามันจะเป็นไปได้ไหม


3
คำถามจริงคืออะไร? คุณต้องการทราบวิธีอื่นในการปิดการใช้งานคำเตือนที่สร้างขึ้นเมื่อความคิดเห็น XML หายไปหรือไม่ ในคุณสมบัติของโครงการเปลี่ยนเป็นแท็บ "สร้าง" และยกเลิกการเลือก "ไฟล์เอกสาร XML" อย่างไรก็ตามฉันขอแนะนำว่าอย่าระงับคำเตือน แต่เพื่อเพิ่มเอกสารที่หายไป
Gorgsenegger

ถูกต้องอย่างแน่นอน แต่ก็อยากรู้ว่าถ้าเราสามารถแก้ปัญหานี้ได้จากที่เดียวเพราะฉันยังใหม่กับเรื่องนี้
Dholakia ที่สดใส

คำถามที่เกี่ยวข้องเหล่านี้อาจช่วย stackoverflow.com/questions/11444631/... stackoverflow.com/questions/3630282/...
Mightymuke

1
คำเตือนจะปรากฏขึ้นสำหรับสมาชิกที่สามารถมองเห็นได้ด้วยแอสเซมบลีอื่น บ่อยครั้งที่คนทำคลาส (และอินเทอร์เฟซ, enums, ฯลฯ ) โดยpublicไม่มีเหตุผลที่ดี ในกรณีนั้นการแก้ไขที่ง่าย (และในความเห็นของฉันดี) คือการลบคำpublic(หรือแทนที่ด้วยinternalคำหลักที่ซ้ำซ้อนขึ้นอยู่กับสไตล์ที่ต้องการ) จากประเภทการปิดล้อมรอบนอก ดังนั้นคำเตือน CS1591 ทั้งหมดเกี่ยวกับประเภทนี้และสมาชิกจะหายไป แน่นอนคุณอาจต้องเก็บบางประเภทpublicไว้ แต่ในกรณีนี้มันยุติธรรมที่คุณต้องการจัดทำเอกสารชิ้นส่วนสาธารณะอย่างถูกต้อง
Jeppe Stig Nielsen

คำตอบ:


318

ตามที่แนะนำข้างต้นโดยทั่วไปฉันไม่คิดว่าคำเตือนเหล่านี้ควรถูกเพิกเฉย (ถูกระงับ) เพื่อสรุปวิธีการเตือนก็คือ:

  • ปราบปรามการเตือนโดยการเปลี่ยนโครงการProperties> Build> Errors and warnings> Suppress warningsโดยการป้อน 1591
  • เพิ่มแท็กเอกสาร XML ( GhostDocนั้นค่อนข้างสะดวกสำหรับมัน)
  • ไม่แสดงคำเตือนผ่านตัวเลือกคอมไพเลอร์
  • ยกเลิก "XML ไฟล์เอกสาร" ช่องทำเครื่องหมายในโครงการProperties> Build>Output
  • เพิ่ม#pragma warning disable 1591ที่ด้านบนของไฟล์ที่เกี่ยวข้องและ#pragma warning restore 1591ที่ด้านล่าง

179
ได้โปรดได้โปรดอย่าใช้ GhostDoc หากความคิดเห็นสามารถอนุมานได้จากชื่อวิธีการมันสามารถสรุปได้ดีกว่าโดยมนุษย์ สิ่งนี้จะเพิ่มค่าเป็นศูนย์ เวลานั้นจะเป็นการแสดงความยินดีกับตัวคุณเองด้วยวิธีที่มีชื่อเสียง
JRoughan

24
ฉันต้องไม่เห็นด้วย GhostDoc ช่วยให้ฉันเพิ่มรายการที่ต้องการของพารามิเตอร์และแท็กส่งคืนได้อย่างรวดเร็ว (หากวิธีการนี้ไม่เป็นโมฆะ) ฉันใช้และชอบและฉันรู้ว่าคนอื่น ๆ ที่ทำเช่นกัน อย่างไรก็ตามมันเป็นความจริงที่คำอธิบายในการสรุปอาจต้องมีการแก้ไข แต่สิ่งนี้นับว่าเป็นระบบอัตโนมัติส่วนใหญ่ในกรณีเช่นนี้
Gorgsenegger

32
หากทั้งหมดนั้นเพิ่มตัวยึดตำแหน่งมันจะเป็นการประหยัดเวลาเล็กน้อย แต่จำนวนโค้ดเบสที่ฉันเคยเห็นที่นักพัฒนาทิ้งข้อความที่สร้างไว้ทำให้เราคิดว่าเราไม่ได้เติบโตเต็มที่พอที่จะใช้งานได้ ความคิดเห็นเป็น crutch (จำเป็นบ่อยครั้ง) สำหรับรหัสที่ไม่ได้จัดทำเอกสารด้วยตนเองและโดยเสนอทางลัดเครื่องมือนี้มีผลประโยชน์สุทธิติดลบในรหัสของโลก
JRoughan

25
@JRoughan: ฉันเห็นด้วยอย่างสมบูรณ์ ส่วนที่แย่ที่สุดคือเมื่อคุณหาเวลาในการจัดทำรหัสของคุณอย่างถูกต้องเครื่องมือเหล่านี้ทำให้คุณไม่สามารถบอกได้ว่าเอกสารของคุณครอบคลุมจริงแค่ไหน เครื่องมือใด ๆ ที่คำนวณความครอบคลุมเอกสารจะอ่าน 100% เสมอ ดังนั้นคุณอย่างแท้จริงจะต้องไปผ่านงานทางจิตใจที่หลบหนีจากการอ่านทุกความคิดเห็น XML และประเมินว่ามันเพียงพอที่จะจัดทำเอกสารรหัส เมื่อทำสิ่งนี้ในโครงการขนาดใหญ่ฉันสามารถบอกคุณได้ว่ามันไม่สนุกเลย ได้โปรดผู้คน! อย่าใช้เครื่องมือเอกสารอัตโนมัติเหล่านี้!
HiredMind

36
@Gorgsenegger: ไม่ใช่ในกรณีนี้ ไม่ใช่เครื่องมือที่มีข้อบกพร่อง แต่เป็นแนวคิดทั้งหมด VS2012 เพิ่ม stubs วิธีการ / พารามิเตอร์ในความคิดเห็น XML มาตรฐานหากนั่นคือสิ่งที่คุณต้องการ แต่การเพิ่มความคิดเห็นที่เป็นชื่อเมธอดที่ยาวขึ้นและเรียกมันว่าเอกสารเป็นเพียงความยุ่งเหยิงทางสายตา
HiredMind

74

ปิดการเตือน: ไปที่คุณสมบัติโครงการ (คลิกขวาที่โครงการของคุณและเลือกคุณสมบัติจากเมนูบริบท) ไปที่แท็บสร้าง ป้อนคำอธิบายรูปภาพที่นี่

เพิ่ม 1591 ไปยังกล่องข้อความคำเตือนการปราบปราม ป้อนคำอธิบายรูปภาพที่นี่


5
ทำงานเหมือนเครื่องรางที่มีรายการที่คั่นด้วยเครื่องหมายจุลภาค: "S125, CS1591, S1172" หลังจากการสร้างความมั่นคงก็หายไป
AFD

10
ขอบคุณที่ตอบคำถามและอย่าบรรยายว่าจะระงับคำเตือนหรือไม่!
Dal

31

นอกจากนี้คุณยังสามารถปรับเปลี่ยนโครงการของคุณ.csprojไฟล์ที่จะรวมถึงในแท็กแรก<noWarn>1591</noWarn> <PropertyGroup>มาจากบทความของ Alexandru Bucur ที่นี่

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

3
นี่ควรเป็นคำตอบสำหรับวันปัจจุบัน
Edgar Salazar

3
ตกลง คำตอบส่วนใหญ่ไม่สามารถใช้งานร่วมกับโปรแกรมแก้ไขอื่น ๆ เช่น Visual Studio Code
Krzysztof Czelusniak

9

เข้าสู่คุณสมบัติของโครงการและยกเลิกการเลือกตัวเลือกสร้างเอกสาร XML

ยกเลิกการเลือกไฟล์เอกสาร XML

คอมไพล์และคำเตือนควรหายไป


2
นี่เป็นวิธีการที่ดีตราบใดที่คุณไม่จำเป็นต้องสร้างเอกสาร XML และคุณไม่ต้องกังวลว่าข้อคิดเห็น XML จะไม่ถูกตรวจสอบ
Keith

1
สิ่งนี้ไม่ทำงานหากคุณต้องการเก็บคำเตือนจากไฟล์ที่ไม่ได้สร้างขึ้นโดยอัตโนมัติ การลบคำเตือนทั้งหมดเพียงเพื่อกำจัดชุดย่อยของคำเตือนดูเหมือนว่าเกินความจริงเล็กน้อยสำหรับฉัน นอกจากนี้ใน บริษัท ส่วนใหญ่เป็นเรื่องปกติที่จะสร้างความคิดเห็น XML ในไฟล์ทั้งหมดที่ไม่มีรหัสที่สร้างขึ้นโดยอัตโนมัติ นอกจากนี้ผู้ใช้ขอวิธีแก้ปัญหาที่ไม่เพียงแค่ลบคุณลักษณะความคิดเห็น XML ดังนั้นจึงไม่ตอบคำถาม
SubliemeSiem

4

นี่จะเป็นความคิดเห็น แต่ฉันไม่สามารถทำให้มันพอดีกับข้อ จำกัด :

ฉันชอบที่จะปิดการใช้งานพวกเขาเพียงเพื่อ Reference.cs และ WebService นำเข้า อันที่จริงฉันใช้แมโครเพื่อทำไฟล์ เพียงเปิดไฟล์และเรียกใช้แมโครนี้ (ทดสอบใน 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

มีวิธีการทำสิ่งนี้โดยอัตโนมัติจริงๆหรือไม่? คุณจะต้องทำซ้ำทุกครั้งที่รหัสที่สร้างขึ้นโดยอัตโนมัติแทนที่ไฟล์


2
ฉันคิดว่าคำเตือนนี้ไม่ควรแสดงสำหรับเนื้อหาที่สร้างขึ้นอัตโนมัติบางทีคุณอาจต้องตรวจสอบการตั้งค่าที่เกี่ยวข้องในคุณสมบัติของโครงการ
Gorgsenegger

1
ไม่มันทั้งหมดแสดงเพียงเปิดใช้งานคำเตือน XML-Comment และไม่มีตัวเลือกดังกล่าวให้ปิดใช้งานเฉพาะสำหรับรหัสที่สร้างอัตโนมัติ ด้วยเหตุนี้เมื่อคุณต้องการสร้างรหัสใหม่
Kjellski

ภายใต้คุณสมบัติของโครงการมีตัวเลือกCode Analysis Supress results from generated codeการเรียกใช้แมโครซ้ำหลังจากการสร้างรหัสใหม่ไม่ใช่วิธีการแก้ปัญหา IMO จริงๆ หากตัวเลือกด้านบนใช้ไม่ได้สำหรับคุณบางทีตัวสร้างโค้ดสามารถปรับให้เพิ่มคำสั่ง pragma ได้โดยอัตโนมัติแทน
Laoujin

@ Laoujin ขอบคุณสำหรับความคิดเห็นของคุณ แต่ที่ฉันพูดถึงฉันไม่ชอบวิธีนี้เช่นกัน ฉันไม่เห็นสาเหตุของการโหวตฉันใช้การตั้งค่าที่คุณพูดถึงไม่สำเร็จ โอกาสใดที่คุณลองใช้โซลูชันของคุณสำหรับการนำเข้า WebService
Kjellski
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.