我们以前的开发系统使用Windows XP和Windows7。从Visual Studio调试C ++ DLL效果很好。
最近迁移到Windows 10导致了一个令人讨厌的问题。我们可以调试一次(使用F5
),但是第二次会导致链接器错误:
MyProg fatal error LNK1201: error writing to program database 'MyProg.pdb'
尝试在Visual Studio仍处于打开状态时在资源管理器中手动删除.pdb会导致错误:
The action can't be completed because the file is open in devenv.exe
是否达到断点都没有关系。一旦出现问题,只需开始调试。重新启动Visual Studio可以解决此问题(从某种意义上说,您可以调试一次,但随后又会遇到问题)。
如果相关:
答案 0 :(得分:1)
经过几个小时的搜寻后,发现了一些相关问题,但unanswered却有问题。遵循this MSDN article中的建议以及我自己的一些调试,此解决方案有效:
C:\Apps\FreeDPB
)handle.exe
复制到C:\Apps\FreeDPB
handle /?
。这是同意EULA。如果您跳过此步骤,脚本将无法正常工作!Command Line
设置为C:\Apps\FreeDPB\freepdb $(ProjectName)
Description
设置为Delete lock on PDB
......现在您无需重新启动Visual Studio进行第二次调试!
从注释来看,这可以在Windows的多个版本上使用Visual Studio的多个版本。
here描述了一种更彻底的解决方案,其中涉及替换核心的Visual Studio DLL(NatDbgDE.dll
)。但是,该解决方案仅适用于Visual Studio 2003 SP1。
答案 1 :(得分:0)
在我的情况下,这是由于“ Process Explorer”程序引起的,该程序与Visual Studio一起打开(我用它来检查已创建的exe的某些属性)。关闭后,问题解决了。