0

Dynamics GP 用のアドイン DLL がありますが、クライアントのサーバーでしか再現できない問題があります。そのため、サーバーに Visual Basic Express 2010 をインストールするだけで、「プロセスにアタッチ」して DLL コードをデバッグできると思いました。その後、この機能は Express エディションでは利用できないことを発見しました。

私は、stackoverflow に関するこの投稿を読みました: Web サイトを使用して VS2010 Express のプロセスにアタッチします。出来ますか?

「外部プログラムの開始」オプションを指示するオンライン投稿もいくつか見ました。この正確なオプションは表示されません。代わりに、「作業ディレクトリ」フィールドと「コマンドライン引数」ボックスがあります。また、これが実際に Dynamics GP で概念的に機能するかどうかもわかりません。つまり、このオプションを正しく設定してから、DLL のデバッグを開始するときに GP を起動しますか?

クライアントのサーバーでこのアドインをデバッグする方法を提案できますか? そうしないと、システムでエラーを再現しようとする試行錯誤のシナリオで立ち往生しています。エラーの原因のパターンが観察されておらず、それを行うのに必要以上の時間を費やしているからです。

4

1 に答える 1

1

私はあなたの気持ちを正確に知っています。私は自分の環境ですべてが正常に機能する同じシナリオに何度か遭遇しましたが、リモートサーバーに展開するとエラーが発生します。

Visual Studio 2010 リモート デバッガーをダウンロードする必要があります。

Dynamics GP を実行しているリモート サーバーにインストールします。

ソリューションを再構築し、.dll と pdb をリモート サーバーの AddIns フォルダーにコピーします。ソリューションを再構築したり、変更を加えたりしないでください。サーバーにデプロイされた dll と pdb が、ローカル開発環境にあるビルドと正確に一致するようにします。

ここで、管理者としてリモート デバッグ ツールを実行します。また、簡単にアタッチできるように、モードを認証なしに変更することもできます。Dynamics GP を起動してログインします。

リモート サーバーでリモート デバッグ ツールが実行されたら、ローカル コンピューターに戻り、Visual Studio で [デバッグ] -> [プロセスにアタッチ] を選択します。リモート サーバーのサーバー名を入力します。Dynamics GP が実行されているプロセスを選択します。通常は Dynamics.exe をアタッチします。ブレーク ポイントを設定し、Dynamics GP でアクションを実行して、プラグインを起動します。

ブレークポイントにヒットしない場合は、Visual Studio の [モジュール] ウィンドウをチェックして、メモリに読み込まれた dll とデバッグ情報を正確に確認できます。

また、WCF サービスと CRM プラグインのリモート デバッグにもこれをよく使用します。ツールボックスに入れておくととても便利なツールです。

もう 1 つの注意事項: VST のすべてのコードを try catch でラップすることをお勧めします。これにより、詳細なエラー メッセージが GP のメッセージ ボックスに表示されます。VST がエラーをスローした場合、多くの場合、GP は問題があることを示さず、エラー情報を表示しません。

于 2013-05-20T20:46:15.273 に答える