【发布时间】:2012-10-03 08:27:21
【问题描述】:
如何针对 ASP.net 网站运行 FxCop?
背景
我有一个想要运行 FxCop 的 ASP.net 网站。
注意:我有一个 ASP.net 网站,而不是 ASP.net Web 应用程序,我想针对它运行 FxCop。
如何在 Visual Studio 2010 Professional 中针对 ASP.net 网站运行 FxCop?
Some people suggest 很简单:只需右键单击网站项目,然后单击在网站上运行代码分析:
过程很简单....只需右键单击网站项目并“在网站上运行代码分析”
他们忽略的是no such option exists:
我也试过 Tools 菜单 -> FxCop。但是这当然行不通,因为它的命令行选项:
FxCopCmd.exe /c /f:$(TargetPath) /d:$(BinDir) /r:"C:\Program Files (x86)\Microsoft Fxcop 10.0\Rules"
对网站没有意义。
Someone has suggested,正确,这是不可能的,因为没有可供 FxCop 验证的程序集:
ASP.NET 2.0 中的构建过程与 ASP.NET 1.x 中的构建过程非常不同,因为它不生成 dll 文件。
这意味着您不能使用 FxCop,因为它只能处理 dll 和 exe 文件类型。
这意味着如果不将整个网站编译成一个程序集,您就无法针对 ASP.net 网站运行 FxCop。
如何针对 ASP.net 网站运行 FxCop?
【问题讨论】:
-
旁白:你可能想把你的笔记从问题的底部移到顶部,因为我是在读完第一个分隔符之后的所有内容之后才读它的 :)。
-
这个故事的寓意是停止使用像网站“项目”这样的小玩具。使用 Web 应用程序项目,所有这些都可以正常工作。
-
@JohnSaunders 该选项 (MSDN) 的缺点很容易超过能够运行 FxCop。
-
无法运行 FxCop 是网站的最小缺点。很抱歉无法将它们列出来,但所有这些缺点都来自这样一个事实,即网站“项目”在 Visual Studio 中的所有其他项目类型中是独一无二的。独一无二是不好的。例如,它们总是最后被测试的,如果某些功能不能在网站上运行,很可能没有人关心它是否能够运行。
-
@JohnSaunders 如果可以将 Web 应用程序编译为 ASPX 和 CS 文件,以便可以从网站的其余部分单独查看和更新它们,那就没问题了。但是包含所有代码的单个程序集是一个交易破坏者。我仍然可以对 asp.net 网站进行单元测试;我就是无法 FxCop。
标签: asp.net visual-studio-2010 fxcop