ワンクリックインストールから起動したアプリケーションをデバッグする必要があります。 (VS 2010、Office 7を備えたExcel VSTO)。ワンクリックインストーラーアプリケーションに提供されるログイン資格情報に基づいて、ユーザーには2つのスプラッシュページのいずれかが表示されます。これはすべて私のマシンで正常に機能しますが、デプロイすると、デフォルトから2番目のスプラッシュページに変更するとエラーが発生します。
私の人生では、VS2010内からプロセスをデバッグする方法がわかりません。資格情報を入力する前にログインにアタッチできますが、[OK]ボタンをクリックするまで起動されないため、Excelにアタッチできません。
だから、Excelを持っている方法はありますか、むしろ、コードがインスタンス化されているときにデバッガを呼び出して、デプロイされたアプリケーションで画像リソースが利用できない理由を理解できますか?
ありがとう。
ランディ
System.Diagnostics.Debugger.Launch();
Juanの答えは、Visual Studioがインストールされている場合に最適です。しかし、ターゲットのマシンにそれがない場合は、何らかの種類の一時停止をする必要があります(通常、ダイアログボックスをメインに追加して、接続するのを待つようにします) リモートデバッガー マシンに接続する
コードからブレークポイントを強制するには:
if (System.Diagnostics.Debugger.IsAttached)
System.Diagnostics.Debugger.Break();
アプリケーションはVisual Studioから起動できないが、デバッグする必要がある場合があります。 Visual Studioが実行されている場合、このコードを使用してアプリケーション内のフォームをチェックし、Visual Studioに添付する可能性を提供します。
using System.Diagnostics;
....
Process[] procName = Process.GetProcessesByName("devenv"); // check if VS currently running
// If Visual Studio is running halt the application by showing a MessageBox and give opportunity to attach the debugger
if(procName.Length > 0)
MessageBox.Show("Wait for debugger attach");
// Force a breakpoint when the debugger became attached
if (System.Diagnostics.Debugger.IsAttached)
System.Diagnostics.Debugger.Break(); // force a breakpoint
excelが十分な長さで実行されていればExcelに接続できますが、真剣にエラーがあるとは思えません。
実行中のアプリケーション/プロセスにアタッチでき、シンボルが使用可能であれば(デバッグビルド)、実際にデバッグできますが、アタッチするアプリケーションを選択するには、アプリケーションが十分に長く存続する必要があります。
あなたが言っていることから、あなたが必要とするのは適切な例外とエラーロギング、すべての例外ですべて(スタックトレース、例外の詳細...)を保存するLog4NetやNLogのようなものだと思うので、本当のことを明確に識別するでしょう問題です。