問題タブ [code-map]
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.
.net-core - Visual Studio 2019 コード マップ エラーのトラブルシューティング
私は、約 10 個の .Net Core プロジェクトを含む Visual Studio 2019 (16.5.4) ソリューションを持ってnetcoreapp3.1
いますnetstandard2.0
。一部には他のプロジェクトへのプロジェクト参照があり、ほとんどは NuPkg 依存関係があります。
ソリューションからコード マップを生成しようとすると、ほとんどのプロジェクトがマップで期待どおりにレンダリングされますが、2 つのプロジェクトはアセンブリ名の横に赤い X が表示され、ノードを展開することはできません。
コード マップの何が気に入らないのかわかりません。最初は、と思ったのnetcoreapp3.1
ですが、当時の新しいプロジェクトを追加してみたら、うまくレンダリングされました。
編集:問題を再現するための簡単なプロジェクトを作成しようとした後、このパッケージ参照を含めるように絞り込みました:
では、このライブラリにはマップがクラッシュする原因となっているものがありますか?
プロジェクトを修正して正常なマップを生成できるように、この問題のトラブルシューティングに役立つログ ファイルやその他のテレメトリはありますか?
ありがとう
-ジョン
xml - Visual Studio コード マップが機能しない - xml と xslt を使用して VB コード スニペットを dmgl 有向グラフ/コード マップに変換する方法
Visual Studio で、孤立した/個別の VB 関数コードをモデル化/マップすることができません。
VB.Net で記述されたレガシー アプリケーションを使用しています。ほとんどのアプリケーション コード/実行可能ファイルはエンド ユーザーにはわかりませんが、フォーム フィールドやデータ モデルと対話できるフォームの背後にユーザー空間のカスタマイズがあります。私がする必要があるのは、このユーザー定義コードをマップして、循環ロジックなどの不適切な相互作用を探すことです。
TL、DR (質問): 目的は、ある種のエンティティ関係または依存関係グラフを取得することです。これらを Viso などで描画することもできますが、すべてのコードに対してそれを行うのはかなり困難です。
関数とその内部、読み取りと書き込みのパターンを簡単に確立する方法があるべきだと私には思えます。これまでのところ何も見つかりませんでした。Excel でこれを行うべきではありません。やりすぎです。私は正規表現に精通していますが、私の経験では、このような問題を意図したものではありませんでした。
何か方法はありますか?
詳細に興味がない場合は、以下を無視してください
VS コード マップを使用してみましたが、アプリケーションのコンパイル済み部分への参照が必要ですが、それはありません。したがって、VS では、このユーザー コードは基本的に、認識されない孤立したコードです。クラス コンテキストはなく、実行時にのみ実行されます。このやり方はかなり難しそうです。そのため、VS Code では構文を強調表示できますが、Visual Studio では何もできず、コード マップや dmg (有向グラフ) などのアドオン ツールでは表示されません。
すべてのユーザー コードは単純な関数であるため、この限られたコンテキストで相互に参照する方法を確認するために、何らかの方法で DMGL に変換することを望んでいました。Excel や Regex を使用してこれを行うこともできますが、これは車輪を再発明するための大きな努力に違いありません。Object-Role Modeling も試してみましたが、手動で入力する必要があり、面倒です。
Roslynも見ましたが、Visual Studioと同じ問題です
私の疑わしい機能をすべてここにコピーするのはおそらく良くないでしょうが、コンテキスト全体を次の場所で見ることができます。
示されているコードを理解するための鍵は、タイム カードを表す親/ヘッダー フォームがあることです。Timecards テーブルのフィールドには接頭辞 lmp* が付いています。また、データベース テーブルには TimecardLines という詳細行を表す子サブフォームがあり、そのフィールドの接頭辞は lml* です。
例
これら 2 つの関数は、ユーザーがタイムカード行の特定のフィールドを編集するときに呼び出すことができます。コードは表示せず、インターフェイスのみを表示します。それぞれが、他の関数によって管理されているフィールドを参照および更新できます。そのため、可能なカスケード効果をテキスト形式で視覚化することは悪夢になる可能性があります.
依存関係としてラベル付けされた項目は、アプリケーションのコンパイル済み部分への呼び出しであり、インターフェイスのフットプリントしかなく、入口/出口ポイント以外では分析できません。それらは私にとって不変であるため、修正することはできません。不要な場合にのみ回避してください。
M1.Ax.Erp.Forms.Production.Timecard.TimecardLineView
+Timecard エントリの問題の子: M1.Ax.Erp.Forms.Production.TimecardView
注:
_Delete()
当面の間、イベントは無視します。
更新:
lmlLaborHours
- 暗黙的に呼び出します: -lmlLaborHours_ValueChanged()
lmlActualEndTime
- 暗黙的に呼び出します:
TimecardLines_UpdateCompleted
- 暗黙的に呼び出します:
入力:
lmlRoundedStartTime
lmlRoundedEndTime
lmlShiftID
依存:
App.Ax("Shift").``CalculateHours``()
動作設定:
xapLMUpdateActualWithRounded
暗黙的に呼び出します:
lmpRoundedEndTime_ValueChanged()
更新:
lmlRoundedEndTime
- 暗黙的に呼び出します:
lmlRoundedEndTime_ValueChanged
TimecardLines_UpdateCompleted
lmlLaborHours
lmlActualStartTime
- 暗黙的に呼び出します:
入力:
lmlActualStartTime
lmlRoundedStartTime
lmlRoundedEndTime
lmlLaborHours
lmlShiftID
依存関係:
App.Ax("Shift").``CalculateEndTime``()
App.Ax("Shift").CalculateHours()
動作設定:
xapLMCalculateEndTime
xapLMUpdateActualWithRounded
これらが編集されると、親ヘッダーが更新されるため、関連する多くの親関数がうまく相互作用しない可能性があります。
M1.Ax.Erp.Forms.Production.Timecard.TimecardView
親: +Timecard エントリの問題: M1.Ax.Erp.Forms.Production.TimecardLineView
次の関数は、次のように呼び出すことができます。TimecardLines_UpdateCompleted
更新:
lmpPayrollHours
入力:
lmpRoundedStartTime
lmpRoundedEndTime
lmpShiftID
依存関係:
App.Ax("TimecardFunctions").CalculateHours()
動作設定:
xapDCPayCalculationMethod
更新:
lmpPayrollHours
入力:
lmpRoundedStartTime
lmpRoundedEndTime
lmpShiftID
依存関係:
App.Ax("TimecardFunctions").CalculateHours()
動作設定:
xapDCPayCalculationMethod
等々。
PS: タグ dmgl を作成するための評判スコアがありません。あるべきです。誰かがタグ付けできたら、それは素晴らしいことです。