3

ASP.net Web サイトに対して FxCop を実行するにはどうすればよいですか?

バックグラウンド

FxCop を実行したい ASP.net Web サイトがあります。

: ASP.net Web アプリケーションではなく、FxCop を実行したい ASP.net Web サイトがあります。

Visual Studio 2010 Professional で ASP.net Web サイトに対して FxCop を実行するにはどうすればよいですか?


Webサイト プロジェクトを右クリックし、[ Run Code Analysis on Web Site ] をクリックするだけです。

プロセスは非常に簡単です.... Web サイト プロジェクトを右クリックし、[Web サイトでコード分析を実行] をクリックします。

彼らが無視しているのは、そのようなオプションが存在しないということです:

ここに画像の説明を入力


Toolsメニュー -> FxCopも試しました。しかし、もちろん、コマンド ライン オプションが次のとおりであるため、これは機能しません。

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

ウェブサイトには意味がありません。


FxCop が検証するアセンブリがないため、誰かが正しく、それは不可能であると示唆しています。

ASP.NET 2.0 でのビルド プロセスは、DLL ファイルを生成しないため、ASP.NET 1.x とは大きく異なります。

つまり、FxCop は dll および exe ファイル タイプでしか機能しないため、使用できません。

つまり、Web サイト全体をアセンブリにコンパイルしない限り、ASP.net Web サイトに対して FxCop を実行することはできません。

ASP.net Web サイトに対して FxCop を実行するにはどうすればよいですか?

4

3 に答える 3

2

回避策は、Web サイトを事前にコンパイルすることです。

  1. aspnet_compiler.exe ( http://msdn.microsoft.com/en-us/library/bb398860(v=vs.100).aspx ) を使用して Web サイトをプリコンパイルします。
  2. プリコンパイルの結果に対して FxCop を実行します。

Visual Studio のエディションが十分にハイエンドではないため、[Web サイトでコード分析を実行] が表示されませんでした (このような重要な機能はすべてのエディションにあるはずなので、Microsoft を非難する必要があります)。

于 2012-10-13T05:35:15.750 に答える
1

Web サイトを公開すると、fxcop を実行できる dll が生成されます。

Use-FxCop-with-ASPNET-20


ASP.NET 2.0 でのビルド プロセスは、DLL ファイルを生成しないため、ASP.NET 1.x とは大きく異なります。つまり、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 に答える