問題タブ [roslyn-code-analysis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1510 参照

c# - CSharpScript.EvaluateAsync の例外行番号

メソッドを使用してスクリプトを評価し、CSharpScript.EvaluatyAsync<T>いくつかの C# コードを渡します。構文エラーなどの構文解析の問題がある場合、エラーの行番号を簡単に確認できますが、実行時例外がある場合、この場合AggregateExceptionは例外 ( ) をラップNullReferenceExceptionするだけですが、方法の手がかりはありません。行番号を取得します (以下の例では 3)。

編集:

私はこれを調査しており、スクリプト API が127 行目で pdb 情報なしでアセンブリを作成するため、例外が発生した場所を知ることは不可能であることがわかりました。私は正しいですか?

0 投票する
1 に答える
1238 参照

c# - Roslyn / コード分析を使用して XML ドキュメント コメントを読み取る方法

Roslyn を使用して、C# コードから要素 (クラス、プロパティなど) の XML ドキュメントを取得したいと考えています。ただし、私が見つけた唯一の関連するメソッドはGetDocumentationCommentXml、XML 全体を提供するだけで、解析された要素は提供しません。

別の SO 投稿では、誰かが同じ質問をして回答を得ました。しかし、その質問は 3 年前のもので、API が変更されました。提案されたGetDocumentationComment方法はもう存在しません。

0 投票する
0 に答える
345 参照

c# - StyleCop アナライザー ルール SA1515 違反の出力は出力ウィンドウにのみ表示され、エラー リスト ウィンドウには表示されません

StyleCop.Analyzers nuget (バージョン 1.0.0) をインストールし、違反時にエラーが発生するように SA1515 (単一のコメントの前に空白行を挿入する必要があります) を構成しました。

ただし、次のコード

出力ウィンドウに違反のみを表示します

しかし、エラー ウィンドウには波線もエントリもありません。を に変更する/////、エラーがすぐにエラー リストに表示されます。

バグのある場所を見つけるためにこれをデバッグする方法はありますか? Visual Studio で GitHub から取得したソース コードを開き、context.ReportDiagnosticそのルール クラスの 1 つの呼び出しにブレーク ポイントを設定し、デバッグ開始時に別の VS インスタンスを開始するように設定し、そこで ConsoleApplication6 を開きましたが、ブレーク ポイント ヒットはありませんでした。

0 投票する
7 に答える
4250 参照

c# - 解決策で欠落している await を見つける

サーバー コードに多くの非同期メソッドがありますが、待機していない呼び出し元があると思われます。

await が欠落している呼び出しのコードをスキャンする簡単な方法はありますか?

次に、使用するのを忘れたどこかで await;

これらの誤った呼び出しを識別するスマートな方法があることを願っていました。

0 投票する
1 に答える
107 参照

c# - ポータブル Roslyn アナライザー C# vS2015 Team Foundation Server Nuget パッケージのサポート

コードを修正して基本的な診断アナライザーを作成しようとしています (TFS への呼び出し、作業項目の作成と更新を含む)

対象フレームワークは、.Net Framework 4.5、ASP.Net Core 1.0、Windows 8、Windows Phone Silver light 8 です。

Microsoft.TeamFoundationServer.ExtendedClient を追加しようとすると、次のエラーが表示されます

Install-Package : Microsoft.TeamFoundationServer.ExtendedClient 14.95.3 は .NETPortable,Version=v4.5,Profile=Profile78 と互換性がありません。行:1 文字:1 + Install-Package Microsoft.TeamFoundationServer.ExtendedClient + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Install-Package]、例外 + FullyQualifiedErrorId : NuGetCmdletUnhandledException、NuGet。 PackageManagement.PowerShellCmdlets.InstallPackageCommand

Microsoft.TeamFoundationServer.Client も試しましたが、同じエラーが発生しました。

この問題を克服するための助けをいただければ幸いです。

また、以下を実行して、アナライザー プロジェクトのターゲット フレームワークを NetStandard 1.5 に変更しようとしました。1) すべての nuget パッケージをアンインストールします。2) ターゲット フレームワークを変更します。パッケージ - コード分析の v1.22 に互換性がないと言って、ここで失敗しました。

0 投票する
2 に答える
960 参照

c# - Control Flow Graph, Inter/Intra data flow analysis with Roslyn, .NET Compiler Platform

I have read that Roslyn does not provide a native CFG implementation, nor a public inter- or intra-data-flow analysis. However that was a source based on Roslyn RC2 which is probably really old. Is it still the case today?

I am trying to do taint analysis, i.e. I should be able to trace a variable after it has been passed through functions or assigned to other variables.

Any help will be appreciated! Thanks!

0 投票する
1 に答える
1291 参照

c# - Roslynを使用してメソッド呼び出し/クラス宣言のフルネームパスを取得する方法

Roslyn でメソッド呼び出しの完全修飾名を取得するにはどうすればよいですか?

たとえば Request.QueryString、 は から来ていますがSystem.Web.UI、どうすればそれを検出できますか?

同じプロジェクト内で名前空間が異なるクラス宣言はどうですか? 同じプロジェクトの他のクラスからの関数呼び出しと同様。

どんな形の助けにも感謝します、ありがとう!

0 投票する
1 に答える
706 参照

c# - .NET Roslyn : ランタイム構成

Roslyn コード アナライザーを使用していくつかのルールを作成します。このルールは、名前空間へのアクセスを制御するためのものです。たとえば、DAL はコアのみを使用できます。ビューが DAL を使用している場合は、警告が必要です。

「Visual Studio 2015 Community Edition」のテンプレート「Analyzer with Code Fix (NuGet + VSIX)」を使用して、プラグインを生成します。

私はいくつかのテストを行いましたが、正常に動作します。ただし、ルールはコードにハードに記述されています。ランタイムでルールを構成する方法がわかりません。最適なのは、ソリューションまたはプロジェクトの構成ファイルです。

例を教えてください。

感謝。

ソリューションの再開 :

  1. 分析したプロジェクトの Visual Studio にファイルを追加します。
  2. .csproj をエディターで開き、構成ファイルの項目グループを変更します。

    <None Include="test.txt" /> -> <AdditionalFiles Include="test.txt" />

ファイルを読む例