C# 无法再命中我的C DLL中的断点

C# 无法再命中我的C DLL中的断点,c#,.net,dll,visual-studio-2013,C#,.net,Dll,Visual Studio 2013,我在regasm注册了一个C dll。这个DLL与一个用Visual C++编写的旧的可执行文件一起使用。我最初是在32位xp上的VS2008中构建DLL的。我最近将其移动到Windows 8,并在VS2013中重建了它 我无法再点击此dll中的断点。它在XP/2008设置中运行良好。输出目录正确,.pdb文件位于正确的位置,设置与以前相同 唯一的区别是为了让它工作,我必须将目标平台标志设置为x86,以便让DLL在Windows8框上正确注册和实例化 我一整天都在磕头。我还尝试启动target.

我在regasm注册了一个C dll。这个DLL与一个用Visual C++编写的旧的可执行文件一起使用。我最初是在32位xp上的VS2008中构建DLL的。我最近将其移动到Windows 8,并在VS2013中重建了它

我无法再点击此dll中的断点。它在XP/2008设置中运行良好。输出目录正确,.pdb文件位于正确的位置,设置与以前相同

唯一的区别是为了让它工作,我必须将目标平台标志设置为x86,以便让DLL在Windows8框上正确注册和实例化

我一整天都在磕头。我还尝试启动target.exe并使用附加进程来命中断点,但没有骰子。我已经清理了.pdb文件,清理并重建了文件等等,但都没有用


有人知道我可能做错了什么吗?

在执行过程中,使用以下对话框仔细检查符号文件是否正确加载: 工具->选项->调试选项卡->符号

在这里,您可以指定visual studio应在其中查找.pdb文件的符号目录。

我终于找到了它

调试->附加到进程对话框

附于: 托管v3.5、v3.0、v2.0代码、本机代码。//我把这个从“自动”改成了“自动”


我在DLL项目设置中的目标.NET framework是3.5。我猜“自动”检测设置没有像我想的那样工作….

运行.exe时是否加载了DLL?它是从您希望从中加载的路径加载的吗?是的,它已正确加载,并且方法按预期返回值。未达到断点。是否在VS中使用混合本机和托管调试?是的,我切换了这些标志并重新启动VS。如果将System.Diagnostics.Debugger.Break语句放入C代码中应该命中的某个位置,会发生什么情况?