web-dev-qa-db-ja.com

文字列c#6.0とStylecopを補間します

私はStylecopバージョン:4.7.49.0を使用しています

誰かがc#6.0で最新の文字列補間機能を使用しましたか

var totalUnits = GetUnitsGetTotalIssuedShares(myId);
var testString = $"Test Units :{totalUnits}, have been shipped.";

ビルドすると、stylecopエラーSA0102が発生します-stylecopはファイルを解析できないためです。 6.0を処理できる新しいバージョンのstylecopはまだないようです。

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

とにかくこのエラーの周りにありますか?

21
MicroMan

SA0102は 内部stylecopエラー であるため、設定ファイルを介して抑制または無視することはできません。

Csprojでファイル名を見つけてセクションをこれに変更することにより、stylecopからファイルを抑制することができます。

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

StyleCopプラグインがインストールされている場合は、問題のあるファイルを右クリックして[スタイル警官から除外]を選択しても同じ効果が得られます。現在、Visual Studio2015では4.7.50アルファである必要があります。


これを行うためのより現代的な方法は、 StyleCop.Analyzers を使用してVisual Studio2015のアナライザー機能を利用することです。

enter image description here

Stylecop.Analyzersに移動すると、関連する* .rulesetファイル(CodeAnalysisルールと同じ場所)のルールに追加されます。

enter image description here

そして、あなたはそれらを介して実行することができます

enter image description here

これは右クリックと同じ効果がありますStyleCopを実行します:

つまり与える:

enter image description here

Visual Studio2015をサポートするStyleCop4.7.50はアルファ版であり、まだC#6をサポートしていないため、これによりC#6のサポートが向上します。

10
NikolaiDante

StyleCopはC#6を処理できるようになりました。

ベータ4.7.51の変更:C#6.0構文の初期(およびテストされていない)サポートが追加されました

したがって、安定版ビルド4.7.54以降では、これはもう発生しないはずです: http://stylecop.codeplex.com/releases/view/621306

1
Hinek