我有一个非常复杂的VC2008项目。为了理解它的内部工作原理,我试图简化它,现在我得到大多数文件的以下类型的289个错误:
错误5错误C2471:无法更新程序数据库'c:\ users \ ryan \ documents \ visual studio 2008 \ projects \ vc \ myinfo \ cli \ debug \ vc90.pdb'c:\ users \ ryan \ documents \ visual studio 2008 \ projects \ vc \ myinfo \ cli \ mediainfo \ file__analyze_buffer_minimizesize.cpp 1 CLI
错误6致命错误C1083:无法打开程序数据库文件:'c:\ users \ ryan \ documents \ visual studio 2008 \ projects \ _vc \ myinfo \ cli \ debug \ vc90.pdb':没有这样的文件或目录c :\ users \ ryan \ documents \ visual studio 2008 \ projects \ vc \ myinfo \ cli \ mediainfo \ file__analyze_buffer_minimizesize.cpp 1 CLI
我的系统:win7 / VS2008
答案 0 :(得分:7)
解决方案1 :在解决方案中找到* .vcxproj文件,在文本编辑器中打开并搜索“DebugInformationFormat”并将其设置为“OldStyle”。重新加载您的项目并构建。如果解决方案中有多个项目,则所有* .vcxproj文件都需要进行此更改。
< DebugInformationFormat>旧式< / DebugInformationFormat>
解决方案2 :从Visual Studio中,在解决方案中的每个项目上单击鼠标右键,然后打开“属性”。展开“配置属性”> 'C / C ++'> '一般'。将“调试信息格式”更改为“C7兼容(/ Z7)”。然后构建您的解决方案。
这对我有用。 (YMMV =您的里程可能会有所不同:)
答案 1 :(得分:3)
在将VS2003.Net解决方案转换为在以后的IDE上运行时,我看到了相同的行为。我的猜测是你的解决方案包含多个项目,这些项目指向同一个中间目录。在VS2005及更高版本中,可以并行构建不相互依赖的项目,这样如果使用相同的工作目录,则可能会出现这样的文件冲突。
按如下方式检查。在解决方案资源管理器中,右键单击其中一个失败项目,然后选择“属性”。在配置属性中 - >一般部分,确保每个项目都有不同的“中间目录”。使用“重建解决方案”再次尝试构建,以清除所有内容。
答案 2 :(得分:1)
大多数情况下,当我收到“C2471:无法更新程序数据库”时,这是因为PDB文件由于某种原因而被锁定。通常在我的情况下,原因是因为我在其他窗口中运行程序,它将PDB文件加载到内存中。
当这不是原因时,我发现正在进行重建 - 所有人都神奇地解决了这个问题。
答案 3 :(得分:1)
我自己遇到了同样类型的错误而没有结束挫折。
我最后通过应用此知识库文章中的Microsoft热修复修复了它:http://archive.msdn.microsoft.com/KB946040
答案 4 :(得分:0)
答案 5 :(得分:0)
您可以删除* .obj文件并重新生成解决方案,此问题可能会解决。以下链接可能对您有所帮助 - https://social.msdn.microsoft.com/Forums/vstudio/en-US/0ceac3c6-62f6-4fdf-82e1-d41e1b4fcd20/vs2008-c2471-cannot-update-program-database?forum=vclanguage