Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何防止visual studio 2019锁定pdb文件?_C++_Visual Studio - Fatal编程技术网

C++ 如何防止visual studio 2019锁定pdb文件?

C++ 如何防止visual studio 2019锁定pdb文件?,c++,visual-studio,C++,Visual Studio,我有一个DLL和一个可执行设置,允许代码热重新加载。当DLL发生任何更改时,可执行文件将重新加载DLL。当使用独立的调试器(如windbg)时,它可以正常工作。我希望能够以同样的方式使用VisualStudio调试器 问题是,如果我尝试重建项目,链接器将无法写入pdb文件,因为visual studio已将它们锁定。因此,我得到以下错误: LINK:致命错误LNK1201:写入程序数据库“c:\Users\maxim\source\repos\transforms\x64\Debug\parti

我有一个DLL和一个可执行设置,允许代码热重新加载。当DLL发生任何更改时,可执行文件将重新加载DLL。当使用独立的调试器(如windbg)时,它可以正常工作。我希望能够以同样的方式使用VisualStudio调试器

问题是,如果我尝试重建项目,链接器将无法写入pdb文件,因为visual studio已将它们锁定。因此,我得到以下错误:

LINK:致命错误LNK1201:写入程序数据库“c:\Users\maxim\source\repos\transforms\x64\Debug\particles.pdb”时出错;检查磁盘空间是否不足、路径是否无效或权限是否不足


如何防止visual studio 2019锁定pdb文件?

攻击性反恶意软件的典型行为。所以禁用它,看看这是否解决了问题。我是在使用解决方案X构建的库在VinylStudio(第二个)实例中调试时重建解决方案X时得到这个结果的。这可能是发生在您身上的情况吗?“这是我唯一一次遇到这个问题。”汉帕桑谢谢你的建议。我试过了,但不幸的是PDB仍然锁定。如果反恶意软件正在锁定该文件,那么windbg是否也会锁定该文件?在我看来,这一定是visual studio调试器不必要地锁定了PDB,而windbg没有这样做。就我而言,显而易见的解决方案是关闭并重新启动VS以释放对文件的锁定。我建议您可以尝试将以下代码添加到预构建中:
如果存在“$(TargetPath).锁定的”del“$(TargetPath).锁定的“
如果存在“$(TargetPath)”如果不存在“$(TargetPath).锁定的”移动“$(TargetPath)”,$(TargetPath).锁定的”
我一直觉得好笑的是,MSFT的大多数人给出的答案都毫无用处。这是攻击性反恶意软件的典型行为。所以禁用它,看看这是否解决了问题。我是在使用解决方案X构建的库在VinylStudio(第二个)实例中调试时重建解决方案X时得到这个结果的。这可能是发生在您身上的情况吗?“这是我唯一一次遇到这个问题。”汉帕桑谢谢你的建议。我试过了,但不幸的是PDB仍然锁定。如果反恶意软件正在锁定该文件,那么windbg是否也会锁定该文件?在我看来,这一定是visual studio调试器不必要地锁定了PDB,而windbg没有这样做。就我而言,显而易见的解决方案是关闭并重新启动VS以释放对文件的锁定。我建议您可以尝试将以下代码添加到预构建中:
如果存在“$(TargetPath).锁定的”del“$(TargetPath).锁定的“
如果存在“$(TargetPath)”如果不存在“$(TargetPath).锁定的”move“$(TargetPath)”,$(TargetPath).锁定的”
我总是觉得MSFT的大多数人给出的答案是多么毫无用处。