web-dev-qa-db-ja.com

StyleCopエラーを抑制する方法SA0102:CSharp.CsParser:ジェネリック型パラメーター属性を使用しているときにファイルで構文エラーが検出されました

ジェネリック型パラメーター属性を持つ次のC#コードがある:

[System.AttributeUsage(System.AttributeTargets.GenericParameter)]
public class GenericParameterAttribute : System.Attribute
{
}
public class GenericClass<[GenericParameter] T>
{
}

StyleCop統合をオンにすると(StyleCop.targetsが.csprojファイルにインポートされます)、StyleCopはエラーを返し、コンパイルは失敗します。

エラー1SA0102:CSharp.CsParser:ファイルで構文エラーが検出されました...

.csprojファイルにインポートされたStyleCop.targetsがなくても、正常にコンパイルされます。

環境

StyleCopドキュメントサイトでコードSA0102が見つかりません http://www.stylecop.com/docs/StyleCop%20Rules.html -SA0102はStyleCopルールではないようです、おそらくコード内部StyleCopエラー。

だから質問:StyleCopエラーSA0102を抑制する方法は?

14
Sergey Fadeev

この種の属性でこのエラーを抑制することは不可能のようです:

[SuppressMessage("StyleCopNameSpace", "SA0102:RuleNameHere")] 

これに関連するように Post 、このメッセージは、StyleCopで内部エラーが発生したときに表示されます。

jasonall 2010年5月18日午後10時:SA0101またはSA0102を抑制することは実際には不可能です。これらは、StyleCopで内部エラーが発生するたびにスローされる特殊なケースの「ルール」です。唯一の回避策は、このファイルの分析を完全に無効にするか、StyleCop4.4にアップグレードするまでオプションのパラメーターの使用を停止することです。

12
AlexH

.csprojファイルでStyleCopから除外するファイルを探し、以下のようにExcludeFromStyleCop要素を追加します。

<Compile Include="<filename>.cs">
  <ExcludeFromStyleCop>True</ExcludeFromStyleCop>
</Compile>
4
user3942922