web-dev-qa-db-ja.com

Visual Studio2015アナライザーが例外をスローしました

VS 2015 Update 1 RCからVS 2015 Update 1に更新した後、次のエラーメッセージが表示され続けます。

アナライザー 'Microsoft.CodeAnalysis.VisualBasic.CodeFixes.SimplifyTypeNames.VisualBasicSimplifyTypeNamesDiagnosticAnalyzer'は、タイプ 'System.ArgumentNullException'の例外をメッセージ '値でnullにすることはできません。パラメータ名:ソース '

私のプロジェクトの1つで。 コード分析はそのプロジェクトで無効になっているため(ソリューション内のすべてのプロジェクトで無効になっているため)、オンとオフを切り替えようとしましたが、同じ問題。

ソリューションをビルドして実行できるようですが、アップグレード後は実際には正しく機能していないようです。

  • すべてが本当に遅い
  • 変更を加えてビルドした後は、変更は適用されません

最近の更新後、またはおそらく以前に、他の誰かがこの問題を抱えていましたか?

ここにある潜在的な回避策: https://github.com/dotnet/roslyn/issues/6682 ユーザーによる投稿dpoeschl

そしてこれは彼の元のテキストです:

回避策:このチェックボックスをオンにします:ツール|オプション|テキストエディタ|基本|コードスタイル| 'Me'でメンバーアクセスを修飾する

dpoeschl's solution

この回避策には2つの副作用があります(これまでのところ考えられます):

1。余分なわたしの視覚的な指標はもう得られません。または関連するコード修正、またはコンプライアンスを簡単に達成するための「すべてのオカレンスを修正する」オプション。

2。完全修飾メンバーアクセスを生成し、必要に応じてそれらを削除するためにSimplifierに依存する(またはこのオプションを明示的にチェックする)コード生成機能は、次のようになります。デフォルトで非準拠コードを生成します。

このオプションを有効にすると、VS2015とVS2015 Update 1の両方で特に非侵襲的です。これは、このオプションが一方向にのみ適用されるためです。つまり、チェックボックスがオフになっていると、アナライザーが実行され、より詳細な分析が実行され(この場合は失敗します)、メンバーアクセスが許可されている場合は電球が表示されます。チェックボックスがオンになっていると、詳細な分析がオプトアウトされます。非常に早い段階で、私を追加するように指示する電球はありません。資格。

それは私のために働いた、それは他の人のために問題を解決するかもしれない。

11
mrc

これはアップデート1で導入された欠陥であり、2015-10-11以降すでに追跡されています Roslyn GitHubで#6682として
ステータスの更新を確認してください。

更新:Visual Studio 2015 Update 2がリリースされました 問題はそこで修正されました。

3
miroxlav

更新:

どうやら、一般的な問題は、クラス名が使用されているときに、コードアシスタントが共有クラスタイプへの呼び出しにフラグを立てていることです。

例えば

Private Shared Property Instance as Class1

Public Shared Function DefInstance1() as Class1
  ' This causes the warning
  Return Class1.Instance
End Function

Public Shared Function DefInstance2() as Class1
  ' This is okay
  Return Instance
End Function

たとえば、System.Timers.Timerから継承するときに、同期オブジェクトに次のように値を割り当てました。

MyBase.SynchronizingObject = value 

の代わりに

SynchronizingObject = value 

VS Code Assistantは、これを簡略化できるタイプ名として検出しました。

また、VSが起動するたびに新しい警告が追加されることにも注意してください。

更新:

別の原因は、Application.Designer.vbのVisualStudioによって生成されたコードにあるようです。

この

Global.Microsoft.VisualBasic.ApplicationServices

簡略化のためにタグ付けされています

ApplicationServices

QAが目前の問題に気付かずに、CodeAssistantが少し攻撃的になっているようです。

3
David

2016年3月30日、MicrosoftはVisualStudioの新しい更新プログラムをリリースしました。

Visual Studio Update 2をインストールした後、問題は解決したようです。これは VS Update 2 および VS Update 2リリースノート です。

リリースノートを確認すると、アナライザーに関して触れたのはこれだけです。

アナライザーAPIの改善を行いました。これには、アナライザーの作成者がアナライザーに同時実行のマークを付けることができるようにし、アナライザーが生成されたコードで実行するかどうかを制御できるようにすることが含まれます。

0
mrc