3

如何针对 ASP.net 网站运行 FxCop?

背景

我有一个要运行 FxCop 的 ASP.net 网站。

注意:我有一个 ASP.net 网站,而不是 ASP.net Web 应用程序,我想针对它运行 FxCop。

如何在 Visual Studio 2010 Professional 中针对 ASP.net 网站运行 FxCop?


有人建议很简单:只需右键单击网站项目,然后单击Run Code Analysis on Web Site

过程很简单....只需右键单击网站项目和“在网站上运行代码分析”

他们忽略的是不存在这样的选择

在此处输入图像描述


我还尝试了Tools menu -> FxCop。但当然这不起作用,因为它的命令行选项:

FxCopCmd.exe /c /f:$(TargetPath) /d:$(BinDir) /r:"C:\Program Files (x86)\Microsoft Fxcop 10.0\Rules"

对网站没有意义。


有人正确地建议,这是不可能的,因为 FxCop 没有要验证的程序集:

ASP.NET 2.0 中的构建过程与 ASP.NET 1.x 中的构建过程非常不同,因为它不生成 dll 文件。

这意味着您不能使用 FxCop,因为它只能用于 dll 和 exe 文件类型。

这意味着如果没有将整个网站编译成程序集,您就不能针对 ASP.net 网站运行 FxCop。

如何针对 ASP.net 网站运行 FxCop?

4

3 回答 3

2

一种解决方法是预编译您的网站,

  1. 使用 aspnet_compiler.exe 预编译您的网站, http: //msdn.microsoft.com/en-us/library/bb398860 (v=vs.100).aspx
  2. 对预编译的结果运行 FxCop。

您看不到“在网站上运行代码分析”,因为您的 Visual Studio 版本不够高端(应该归咎于微软,因为所有版本中都应该有这些基本功能)。

于 2012-10-13T05:35:15.750 回答
1

您可以发布您的网站,它将生成您可以在其上运行 fxcop 的 dll。

使用-FxCop-with-ASPNET-20


ASP.NET 2.0 中的构建过程与 ASP.NET 1.x 中的构建过程非常不同,因为它不生成 dll 文件。这意味着您不能使用 FxCop,因为它只能用于 dll 和 exe 文件类型。但是,有一种方法可以在 Visual Studio 2005 中从您的 Web 应用程序生成 dll 文件,并且这些 dll 文件可以被 FxCop 使用。

以下是让 FxCop 分析您的 Web 应用程序的步骤:

第1步

在磁盘的某处创建一个新文件夹。可能是 C:\deploy

第2步

将 Web 应用程序发布到新文件夹中

在此处输入图像描述

在此处输入图像描述

第 3 步

打开 FxCop 并添加新创建的 bin 文件夹 (C:\deploy\bin) 中的所有 dll 文件以进行分析。

在此处输入图像描述

对于我们这些不使用 Visual Studio Team System 的人来说,这些是我们在 FxCop 中分析 Web 应用程序时需要遵循的步骤。让我们希望下一个版本的 Visual Studio 已经解决了这个问题。

于 2012-10-12T13:55:03.657 回答
0

或者您可以运行一个对源代码进行分析的工具,而不是编译的程序集。可能会节省您一些宝贵的时间。

于 2012-10-13T04:39:45.553 回答