2017-02-10 19 views
4

Autodesk Revit用の.netプラグインを作成します。 Revitはアンマネージドアプリケーションです。だから、私はUse managed compatibility modeオプションまたはEnable native code debuggingオプション(またはその両方)のいずれかのためにONに設定することに成功しています。それ以外の場合、デバッグは開始できません。「管理された互換モードを使用する」または「ネイティブコードのデバッグを有効にする」?

最初のものはすべてのプロジェクトに適用されます。 2番目はプロジェクトごとに個別に使用されます。

enter image description here

何これらのオプションの違いは?彼らが何をするのか分からない。私の場合、どのようなオプションを使用するのが正しいですか?

+0

私は十分にありがとうございます。あなたのスクリーンショットは少なくとも動的にロードされたアセンブリのデバッグに費やさなければならなかった少なくとも3営業日を節約できました。これはJavaScriptの 'window.alert'デバッグ方法より悪いものでした。 – RBT

答えて

7

プラグインをデバッグするためにアンマネージデバッグを有効にする必要はありません。ホストアプリケーションがアドインを読み込むと、コード内のブレークポイントがアクティブになります(中空から固体に変わります)。これが起こったのかどうか不明な場合は、デバッグ> Windows>モジュールウィンドウを見てください。

アンマネージドデバッグを有効にすると、デバッグセッションに大きな影響はありませんが、開始にはかなり時間がかかることがあります。また、シンボルサーバーを一時的に無効にして迷惑をかけないようにする必要があります。

[ツール]> [オプション]の設定には、名前が貧弱です。マイクロソフトは新しいデバッグエンジンの開発に取り組んでいますが、一部の機能を削除するように強制しました(または選択しました)。 「管理された互換モードを使用する」は、VS2010で使用されていた古いバージョンの管理デバッガを強制的にロードします。 C++/CLIコードをデバッグするときに必要です。 VS2015でも役に立ちます。管理されたデバッグエンジンは非常にバグがあります。戻り値検査や64ビットのedit + continueなど、いくつかの新しいデバッグ機能は欠場します。アドインをデバッグするために他の方法は必要ありません。

「ネイティブ互換モードを使用する」と同じ話で、VS2012 afaikの古いバージョンのアンマネージデバッギングエンジンを有効にします。あなたは新しいNatvisビジュアライザーを見逃してしまいます。古いビジュアライザーを動作させ続ける以外に、それを必要とする魅力的な理由はまだ見つかりませんでした。

+0

あなたのアドバイスは私のオフィスのコンピュータでうまくいきます:私は '管理された互換性モードの使用 'オプションだけを使用し、デバッグはうまく動作します。しかし、私の家のコンピュータでは、両方のオプションがオンになっているときだけデバッグが機能します。動画は次のとおりです:https://www.youtube.com/watch?v=E8n-KjyQ-uw&feature=youtu.be –

関連する問題