Visual Studioで開発しているデスクトップアプリケーションがあり、アプリのごく一部をより頻繁に更新する必要があります。毎回新しいインストーラーをデプロイするという不便さを避けるために、頻繁に更新されるサポート関数を別のプロジェクトに分割し、DLLとしてコンパイルしました。デスクトップアプリは、実行時にリフレクションを使用してこのDLLをロードし、次のようなインターフェイス定義を使用して共有DLLに基づいてオブジェクトをインスタンス化します。
Assembly a = Assembly.LoadFrom(supportDLLPath);
ISupportModuleInterface obj = (ISupportModuleInterface)a.CreateInstance("SupportCode.SupportObject");
if (obj != null)
{
obj.OnTransferProgress += new FileTransferProgressHandler(obj_OnTransferProgress);
obj.OnTransferComplete += new EventHandler(uploader_OnTransferComplete);
obj.DoWork(packagePath)
}
ほとんどの場合は正常に動作しますが、問題をデバッグする必要があり、VisualStudioデバッガーを確実にステップインさせることができません。DoWorkにステップインするときなど、コードを介してF11キーを押すと、システム上のDLLのソースコードが自動的に検索されて表示されることがあります。ただし、イベントが発生すると、Visual Studioはコールスタックに[外部コード]マーカーを表示するだけで、サポートプロジェクトのコード内を移動できません。
サポートプロジェクトを適切にデバッグできるように、これを修正する方法について誰かがアイデアを持っていますか?ありがとうございました!