5

よりグローバルなものでStyleCopルールを抑制することは可能ですか?つまり、ソースのインライン属性を使用するだけではありませんか?

4

2 に答える 2

8

Settings.StyleCopファイルを使用して特定のstylecopルールを無効にすることができます。たとえば、stylecopには、標準に適合しないものが組み込まれています。たとえば、私のSettings.StyleCopファイルには次のものがあります。

<Analyzer AnalyzerId="Microsoft.StyleCop.CSharp.ReadabilityRules">
  <Rules>
    <Rule Name="PrefixLocalCallsWithThis">
      <RuleSettings>
        <BooleanProperty Name="Enabled">False</BooleanProperty>
      </RuleSettings>
    </Rule>
  </Rules>
  <AnalyzerSettings />
</Analyzer>

そのため、メンバー変数またはプロパティでは、「this」を使用する必要はありません。一人一人のために。

于 2010-01-22T19:06:55.333 に答える
2

絶対!

ソース属性は、最もまれな状況でのみ使用する必要があります。StyleCop 構成の大部分は、StyleCopSettingsEditor を介して行う必要があります (プロジェクトを右クリックし、[StyleCop 設定] を選択すると、1 つが開きます)。

これにより、プロジェクト ディレクトリにそのプロジェクトの Settings.StyleCop ファイルが作成されます。そのファイルは、他の回答で言及されているように手動で編集できますが、エディターで XML をハッキングすることは決してお勧めしません。StyleCopSettingsEditor は間違いなく最適な方法です。

StyleCop の設定を変更したら、それで終わりではありません。
これらの設定はその 1 つのプロジェクトにのみ適用されるため、これでは不十分な場合があります。
個人的には、その StyleCop.Settings ファイルを 1 つ上のディレクトリのソリューション レベルに移動し、それを「ソリューション アイテム」として追加することをお勧めします。次に、そのファイルを TFS (または使用しているソース管理システム) にチェックインします。現在、これらの StyleCop 設定はソリューション全体の一部であり、「Get Latest」を実行すると全員がそれらを取得します。必要に応じて、ソリューション設定をプロジェクト設定でオーバーライドできます (プロジェクト レベルの StyleCop.Settings ファイルは、ソリューション レベルのファイルをオーバーライドします)。

StyleCop 設定をそれよりもグローバルにする唯一の方法は、ディレクトリ ツリーのさらに上に移動することです (TFS を使用している場合はチーム プロジェクト レベルまで、ソリューション レベルで GetLatest を実行しても信頼できないため)。または、StyleCop のインストール ディレクトリにある Settings.StyleCop ファイルを上書きします (これはソース管理では処理できず、代わりに全員または何かに電子メールで送信する必要があるため、さらに信頼性が低くなります)。

全体として、チームの特定の StyleCop 設定を必要に応じてグローバルにする方法は間違いなくあり、多くのオプションがあります。

于 2010-03-04T21:57:43.070 に答える