2016-01-29 5 views
6

診断アナライザとコードの修正をいくつか作成しました。 これらはすべて期待どおりの実験ハイブで動作します。アナライザは機能していますが、潜在的なコード修正は消えます

Nugetパッケージとしてビルドし、VS2015の通常のインスタンスでプロジェクトに追加します。奇妙なことに、アナライザー/コード修正のコンボは正しく動作しますが、アナライザーとコード修正のコンボは正しく機能しますが、アナライザーのみが動作し、コード修正は提案されていません(実験ハイブでも同様です)。

私の質問は、この問題をどのように分析できますか? ActivityLog.xmlには何もありません。 誰かがこの動作を観察しましたか?

UPDATE:正常なインスタンスでvsix VS拡張機能を使用してテストしたところ、コード修正が正しく表示されました。私はそのファイルを閉じて再オープンし、コードの修正はもう利用できませんでした。何度もファイルを閉じて再オープンしても、コードの修正は戻ってこない。しかし、私は別の診断とコード修正を含む別のファイルを開きます。これは何とか他のコード修正を開始します。

これはばかげて聞こえるかもしれませんが、他のサードパーティのアナライザーでこれを観察したと思います。おそらく私のVSのインストールに問題がありますか?

+0

ロザリンソースコードは、(https://github.com/dotnet/roslyn)GitHubの上]です。アナライザーは何らかの形でトリガーされる必要があります(おそらく[AnalyzerDriver](https://github.com/dotnet/roslyn/blob/a4e375b95953e471660e9686a46893c97db70b0e/src/Compilers/Core/Portable/DiagnosticAnalyzer/AnalyzerDriver.cs)です。 [デバッグRoslyn](https://github.com/dotnet/roslyn/wiki/Building-Testing-and-Debugging)アナライザーにはなぜそれが動作しないのかを知るために –

+0

VS 2017 RTMで全く同じことが分かりますコードの修正は電球の修正を示していますが、クリックするとコードの修正リストが表示されるのではなく消えてしまいます。 F5(VSIX)とNugetをインストールしてみましたが、この動作を修正する信頼できる方法はまだ見つかっていません。RoslynまたはVisual Studioのバグのようです。 – angularsen

答えて

0

Roslynアナライザーとコードフィックスプロバイダー用のNugetパッケージを開発したとき、私は同様の扱いにくい問題に直面しました。コードを更新してパッケージをプロジェクトにインストールすると、新しいパッケージの代わりに古いパッケージが実行されていました。 Visual Studioを閉じて再オープンすると、新しいNugetパッケージが実行されていました。

私にはわかりませんが、Visual StudioのNugetパッケージのキャッシュメカニズムがあると思います。私は以下の方法を試しませんでしたが、あなたの問題を解決するのに役立つかもしれません。

How to clear NuGet package cache using command line?