2

Visual Studio 2010内から実行すると、StyleCopが違反を正しく報告するという非常に奇妙な結果が見られます。ただし、コマンドライン(「MSBuild.exemySolution.sln」など)でmsbuildを実行すると、「違反は発生していません」と報告されます。明らかに、VisualStudio内で実行したときと同じ違反があります。これはStyleCopの最新リリースのバグですか?または2010年の統合では?VS.NETコマンドラインとMSBuildコマンドラインから実行するStyleCopの違いについて教えてください。ありがとう。

4

1 に答える 1

1

私は自分の質問に問題を見つけました。このためのセットアップは、csproj ファイル内に次のように記述しました。

<Import Project="..\..\lib\StyleCop\Microsoft.StyleCop.targets" />

これは、Microsoftがこれを行う場所をここに示しているものとはわずかに異なります。

<Import Project="$(ProgramFiles)\MSBuild\Microsoft\StyleCop\v4.3\Microsoft.StyleCop.targets" />

しかし、すべてがまだ機能するはずです。問題は、lib\StyleCop フォルダーに次のものしかないことでした。

  • Microsoft.StyleCop.Targets
  • Microsoft.StyleCop.dll

不足していた:

  • Microsoft.StyleCop.CSharp.dll
  • Microsoft.StyleCop.CSharp.Rules.dll

動的に検出されます。これら 2 つの他のファイルを lib\StyleCop フォルダーに追加すると、MSBuild からすべてが正常に機能するようになりました。これにより、すべての開発者がインストーラーを実行してバイナリを ProgramFiles ディレクトリに配置しなくても、StyleCop を利用できるようになります。これは、ビルド サーバーでインストーラーを実行する必要がないことも意味します。

于 2010-07-21T14:46:25.087 に答える