C++ /被Visual Studio 2010忽略的PDBALTPATH

C++ /被Visual Studio 2010忽略的PDBALTPATH,c++,visual-studio-2010,debugging,pdb-files,C++,Visual Studio 2010,Debugging,Pdb Files,我正在编译一个带有附加选项/PDBALTPATH:%\u PDB%的DLL项目,该选项只应发出PDB文件的文件名,而不包含路径信息。使用十六进制编辑器查看DLL时,只会发出MyDLL.pdb 在代码中,我将DLL和pdb从MyProject/Debug/MyDLL.pdb复制到MyProject/Debug/Temp/MyDLL.pdb,并使用LoadLibrary加载它。问题是调试器使用MyProject/Debug/MyDLL.pdb文件,而不是Temp dir中的文件。如果我删除调试目录中

我正在编译一个带有附加选项/PDBALTPATH:%\u PDB%的DLL项目,该选项只应发出PDB文件的文件名,而不包含路径信息。使用十六进制编辑器查看DLL时,只会发出MyDLL.pdb

在代码中,我将DLL和pdb从MyProject/Debug/MyDLL.pdb复制到MyProject/Debug/Temp/MyDLL.pdb,并使用LoadLibrary加载它。问题是调试器使用MyProject/Debug/MyDLL.pdb文件,而不是Temp dir中的文件。如果我删除调试目录中的pdb文件,调试器将使用Temp目录中的文件,这正是我想要的


如何在不删除/Debug/中的pdb的情况下获得所需的行为,从而使链接器在每次生成时都进行完整链接。

为什么不解决实际问题并更改项目的OutputDirectory设置,以便将其生成到所需的目录?不再复制,不需要/pdbaltpath,不需要尝试告诉调试器。这不是真正的问题。DLL在运行时使用msbuild重新编译,它会覆盖$OuputDir中的DLL,这仅在运行的porgram加载了副本时才可能发生。调试程序的工作目录是“MyProject/Debug”吗?调试器可能会开始解析其工作目录中的符号。