我們在我們所有的源文件上運行代碼分析。我們的一個源文件是Linq-To-SQL生成的文件,我們無法控制生成的輸出。生成的代碼正在生成我想要禁止的代碼分析警告。有沒有什麼辦法可以在代碼生成的文件中抑制CA警告,而不需要在代碼本身中創建屬性和/或編譯指示(每次生成文件時都會覆蓋)?代碼分析生成的代碼生成文件 - 如何抑制警告?
回答
你的類是否有[GeneratedCode]屬性?如果是這樣,你可以得到的FxCop忽略它們:
使用的FxCop的項目:
- 在FxCop的打開你的FxCop項目
- 選擇項目 - >選項 - >拼寫&分析
- 檢查針對生成的代碼抑制分析結果
- 單擊確定
通過命令行:
- 傳遞/ ignoregeneratedcode開關,例如:
FxCopCmd.exe /file:MyAssembly.dll /out:AnalysisResults.xml /ignoregeneratedcode
如果您使用的是FxCop的GUI,你可以簡單地排除FxCop項目中的這些問題。只需右鍵單擊該問題,然後選擇排除您可以在其中添加評論。
但如果你在輸出窗口中運行的FxCop我沒有線索。也許你可以檢查是否可以創建一個模塊級別的SuppressMessage並將其粘貼到AssemblyInfo.cs中。但我不這麼認爲。
有一個相關的問題另一個答案在這裏,這樣表明你可以在模塊級抑制添加到AssemblyInfo.cs中,但我只是想它,不能讓它的工作。我可以將SuppressMessage添加到每個單獨的方法中,但是當我想忽略特定程序集中的所有內容時,這是一個非常痛苦的脖子。希望有人會用這個解決方案來回答! – Dave 2010-03-29 23:53:56
通過使用您自己的部分類的分支來應用該屬性,可以解決缺少GeneratedCode
屬性的問題。這將意味着您添加的任何自定義代碼(包括實施部分方法)將被排除。例如:
namespace MyApp.DB {
[GeneratedCode("LINQ To SQL", "4.0")]
internal partial class MyAppDataContext {
}
// Repeat for each entity
}
PLINQO (Linq-to-SQL) CodeSmith templates也會自動爲您生成此屬性。大多數加載項也開始忽略文件名中使用「.generated」生成的部分類。
[System.CodeDom.Compiler.GeneratedCode( 「CodeSmith中」, 「5.0.0.0」)]
- 1. 代碼合同。如何抑制生成的代碼警告?
- 2. 如何在生成的代碼中抑制代碼分析?
- 3. 如何在生成的代碼中抑制警告?
- 4. 如何配置StyleCop以抑制生成的代碼警告?
- 5. 代碼分析在biztalk 2009生成的代碼上運行
- 6. 如何強制SilverLight在生成的代碼文件夾中生成代碼?
- 7. 抑制Web Site Visual Studio項目後面生成代碼的構建警告
- 8. 生成不生成代碼
- 9. 如何設計生成Python代碼的代碼生成器
- 10. 代碼生成
- 11. 如何使用寧靜代碼生成器生成代碼(.ts)
- 12. 抑制靜態代碼分析警告TryParse調用CA1806
- 13. 生成文件的視覺工作室代碼分析
- 14. 如何生成c#代碼?
- 15. 如何修復代碼分析警告
- 16. C#代碼生成
- 17. MD5代碼生成
- 18. C++代碼生成
- 19. Java代碼生成
- 20. 生成該代碼
- 21. Xcode代碼生成
- 22. 生成F#代碼
- 23. NHibernate代碼生成
- 24. MapStruct生成代碼
- 25. 的Python:代碼VHDL代碼生成
- 26. 代碼從Selenium IDE生成的代碼
- 27. 刪除從T4 MVC代碼生成中生成的編譯器警告
- 28. 使用ADO.NET生成代碼後重組代碼DbContext生成器
- 29. 閱讀代碼行生成的代碼
- 30. 代碼生成:在Excel中生成HTML
不SuppressMessage作品,如果我打電話使用命令行fxcopcmd.exe? – Kiquenet 2013-01-31 15:36:10
是它應該做的 – Paolo 2013-02-01 11:10:02