我有我与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)
}

它正常工作的大部分时间,但我需要调试一个与它的问题,我不能可靠地获取Visual Studio调试器踏进去。有时候通过代码按F11的时候,这样的步入DoWork的作为时,它会自动查找在我的系统DLL的源代码,并显示它。但是,当一个事件被触发时,Visual Studio只是显示在调用栈中的[外部代码]标记,我不能在支持项目中的代码内导航。

有没有人对如何解决这个问题,所以我可以正常调试支持项目中的任何想法?谢谢!

有帮助吗?

解决方案

时,在“模块”窗口中列出的组件(调试 - >视窗 - >模块,或按“Ctrl-d,M”),并且是它列为,与从所装载的符号“加载符号”。您所期望的位置? (你可以强制通过右击并选择加载符号“加载符号......”,如果不能找到匹配它会提示你用一个符号文件“打开...”对话框)。

在此窗口中还检查以确保心不是装了两次,并且该程序集的版本/时间戳/位置是你希望它是什么。模块

最后检查,看看是否“仅我的代码”将在“工具 - >选项 - >调试” chcked,看看是否取消选中它是否有差别。

其他提示

您可以进入拆卸?如果是这样,从我还记得什么,它会给你向创建PDB当源代码是一个路径。我不得不这样做是为了调试NHibernate和不得不把源代码的确切路径在其中创建“PDB”文件时,它开始了。后,我可以踏入,没有任何问题的源代码。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top