Joe*_* Gö 10 build-process visual-studio pdb-files
我有一个VS(2008)解决方案,由几个项目组成,而不是全部在同一名称空间中.构建解决方案时,顶级项目TopProject使用的所有dll 都将复制到TopProject\bin\debug文件夹中.但是,仅为某些其他项目复制相应的.pdb文件.这是一种痛苦,例如在使用NDepend时.
VS如何决定将哪些.pdb文件复制到更高级别的bin\debug文件夹中?我怎样才能让VS复制其他人呢?
编辑:
参考如下:所有dll都复制到一个中心位置,没有他们的pdbs.TopProject 只引用了这些复制的dll; 然而,dll本身显然知道他们的pdbs在哪里,并且(大多数)被正确地复制到调试文件夹.
Joh*_*udy 11
来自MSDN:
程序数据库(PDB)文件保存调试和项目状态信息,允许增量链接程序的Debug配置.使用/ ZI或/ Zi编译C/C++程序或使用/ debug编译Visual Basic/C#/ JScript .NET程序时,将创建PDB文件.
所以看起来这里的"问题"(缺少一个更好的词)是你的一些DLL是在调试模式下构建的(因此发出PDB),有些是在发布模式下构建的(因此不会发出PDB) .如果是这种情况,应该很容易修复 - 进入每个项目并更新其构建设置.如果您没有对命令行选项进行任何调整,那么这将是默认方案.
但是,如果情况并非如此,那将会变得更加棘手.也许你们都处于发布或调试模式.现在,您需要查看每个项目的命令行编译选项(在项目属性中指定).如果需要调试器,请将它们更新为/ debug,如果不需要,则将其删除.
编辑以响应编辑
是的,DLL"知道"他们有PDB,并且有路径,但这并不意味着太多.正如其他人所提到的那样,只将DLL复制到给定目录,不会清除这个问题.您也需要PDB.
在Windows中复制单个文件,但某些"捆绑"类型文件除外(我不是微软的术语,但"完整的HTML包"是概念)不复制相关文件.DLL没有以"捆绑"的方式组装,因此复制它们会使PDB落后.
我要说的唯一的答案是更新你的DLL进入这些中心位置的过程,并包括PDB ......但我很乐意被证明是错误的!
| 归档时间: |
|
| 查看次数: |
26605 次 |
| 最近记录: |