问题标签 [fxcop]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - FXCop:“拥有一次性字段的类型应该是一次性的”
我开始对我的一些程序集使用 FXCop,并注意到一些有趣的东西,我正试图绕开我的脑袋。
“声明一次性成员的类型也应该实现 IDisposable。如果该类型不拥有任何非托管资源,请不要在其上实现终结器。”
我有自己的类,其中包含一些控件,这些控件又继承自 System.Web.UI.WebControls.Button。它不是抱怨我继承的按钮,而是包装它们的类。
这里有什么影响或危险?
.net - FXCop - 找不到引用的程序集
我正在尝试在精简版应用程序上使用 Microsoft FXCop 版本 1.36,但是当我分析项目时出现以下错误。
找不到以下引用的程序集。此程序集是分析所必需的,由 application.exe 引用
System.Windows.Forms,版本=3.5.0.0,文化=中性,PublicKeyToken=969db8053d3322ac,可重定向=是
它允许我浏览以查找程序集,但它不会让我选择 GAC 中的程序集。
该程序集位于 GAC 中,应用程序本身运行良好。我需要做一些特别的事情才能让 FX Cop 找到它吗?
更新:我尝试在项目选项下设置“搜索全局程序集缓存以查找缺失的引用”
.net - 在您的项目中使用 FXCop
是否有很多 IT 商店使用 FxCop 来编写生产代码?如果是这样,您在文化转变、痛点和有形收益方面实施它的总体经验是什么?
我处于一个有点混乱的环境中,我正在寻找工具来帮助我们标准化我们的开发工作并让我们在一个体面的时间回家。我想避免因为推动静态分析工具而失败,因为它“不实用”。<-(预期的管理层回应)
c# - 如何扩展 WinForm 的 Dispose 方法?
我收到了来自 FxCop 的警告:
“'RestartForm' 包含 IDisposable 类型的字段 'RestartForm.done':'ManualResetEvent'。将 'RestartForm' 上的 Dispose 方法更改为在此字段上调用 Dispose 或 Close。”
好的,我明白这意味着什么,为什么这是需要做的......除了System.Windows.Forms.Form
不允许你覆盖.Close()
or .Dispose()
,那该怎么办?目前我正在使用这个解决方案:
这适用于我的应用程序......但 FxCop 仍然显示此消息。我是否被覆盖了,我可以安全地忽略它,还是有另一种方式我应该这样做?
c# - CA1062: ValidateArgumentsOfPublicMethods 对共同构造函数调用
我有一个有两个构造函数的类,如下所示:
当我运行 FxCop 时,它正确报告了违反CA1062: ValidateArgumentsOfPublicMethods,因为如果source
在null
第一个构造函数中,它会抛出一个NullReferenceException
on source.Name
。
有什么办法可以解决这个警告吗?
我可以创建一个扩展方法来检查 null 并返回它的参数,但它会很难看。此外,据我了解,它不会解决警告,因为 FxCop 不会意识到它的作用。
fxcop - 当我尝试使用 FxCop 内省引擎时,如何解决这个异常?
当我尝试使用 FxCop 内省引擎时出现异常:
这个异常是什么意思,我该如何解决?
msbuild - 是否可以从 csproj 文件中知道是使用 devenv 还是 msbuild 来运行它?
动机:我在构建过程中集成了 fxcop,这使得 fxcopcmd.exe 在每次目标更改时运行,或者只要之前运行 fxcop 有警告。
但是当一个人在工作室工作时,无论出于何种原因,devenv.exe 经常决定在后台编译项目。例如,当我向解决方案添加一个新项目时,我注意到 fxcopcmd.exe 运行,这意味着后台构建已经开始。也有其他时间。
所以,我希望在使用 devenv 构建时抑制 fxcop。我们的 CI 服务器使用 msbuild 构建,所以没有问题。
顺便说一句,如果有办法禁用后台构建,那就太好了。
.net - 解析 FxCop 日志文件 - 你会怎么做?
我目前正在编写一个在大型代码库上解析 FxCop 日志文件的工具。我的目标是提供有关最常见警告的图形信息,按名称空间(应用程序的子系统)排序。
然后可以使用它来开始讨论我们关心哪些 FxCop 规则以及应该采取哪些行动来删除它们。
日志文件包含两种类型的条目。一种可以从行本身推导出命名空间,另一种则不能。请参阅以下示例:
您可以看到此警告属于命名空间 CompanyName.Common。
在此条目中,您无法将最后两个警告解析为命名空间。您必须回溯到第一行才能推断出它与 CompanyName.Utilities 命名空间有关。
你会如何处理这种情况?我不是在寻找 100% 万无一失的标识,但我希望能够将大多数警告解析到相应的命名空间。
到目前为止我的策略: 我正在考虑使用两遍解析器。首先,我将解析可以从同一行中推断出命名空间信息的行。在第二遍中,我将搜索没有命名空间信息的行,并将从该位置回溯到有命名空间信息的第一行。
我没有能力让 FxCop 生成 XML。Team Foundation Server 确实为每个程序集以 XML 格式创建单独的 FxCop 文件,但包含整个日志文件的文件采用上述格式。
有更好的想法或建议吗?
到目前为止很好的建议!有关日志文件的一些额外信息。此日志文件由 Team Foundation Server 团队构建生成。我不知道是否可以从中创建 XML 版本。
c# - 这个安全警告是什么意思(.Net Process 类)?
我正在使用 VSTS 2008 + .Net 2.0 + C#。我在构建后运行代码分析。我收到以下令人困惑的安全警告。这是警告和相关代码,任何想法有什么问题吗?如果有安全警告,如何解决?
警告:CA2122:Microsoft.Security:“TestHtml()”调用具有 LinkDemand 的“Process.Start()”。通过进行此调用,“Process.Start()”间接暴露给用户代码。查看以下可能公开绕过安全保护的方法的调用堆栈:
c# - 构造函数中的可覆盖方法 - 修复帮助
我试图在 C# 项目上使用 fxCop 作为 C# 编码标准的一种基础。
我使用的项目称为 S#arp Architecture,可在此处免费获得:S#Arp Arch
现在,如果我运行 fxCop(大多数事情已经修复),我需要修复构造函数中可覆盖方法的 CA2214 fxcop 错误。
目前一段违规代码如下所示:
大部分在其他 cd 文件中都是这样调用的:
我尝试更改方法的类型(私有/受保护等),但 fxCop 和单元测试经常存在冲突的需求,fxcop 说它不喜欢使用虚拟方法的构造函数,但单元说方法应该是公共/受保护的虚拟或受保护的内部虚拟,捕获 22 个 lil 位?
因此,我们将不胜感激修复此 fxcop 规则的任何帮助,谢谢。
(错误发生在标有 > 的行上,即虚拟 get set 方法,当更改另一个 > 时,它会抱怨)