obj/Debug 中的 .pdb 文件是否应该添加到源代码管理中?
Should .pdb files from obj/Debug be added to source control?
关于处理 .pdb 文件的最佳实践,网络上存在一些相互矛盾的信息,如果您能提供说明,我将不胜感激。
例如,this source says that "PDB files are as important as source code", while this 表示 .pdbs 不属于源代码管理。
- 在正常开发(调试模式)期间构建生成的 .pdb 文件是否应该提交给源代码管理?
- 是否只应将用于 release/production 的 .pdb 文件存储在源代码管理中?
我希望第一个问题的答案是 "no",第二个问题的答案是 "yes",但我可能遗漏了什么。
请参阅 this post。您不需要将 *.pdb 文件添加到源代码管理。这些文件是在您启动新的调试会话时生成的。
PDB 文件不应进入源代码管理。它们是构建工件的一部分,应该与构建的输出一起保存(而不是在构建后丢弃)。应保留历史构建并跟踪当前发布的部署版本,因此如果需要,您可以从相应的存档构建中提取 PDB。
除了 Craig W. 的正确答案:
除了源代码控制系统(例如svn/git),您还应该使用构建系统来存档任何构建。
Jenkins 是一个不错的构建系统,它是一个安静且易于理解的构建系统,具有我期望的所有功能。如果你分发你的软件,你登录到 jenkis 并点击 "build now"。然后 Jenkins 从 svn/git 中检出当前版本并构建您的软件(使用批处理)并保存所有文件,包括 debug/symbol 文件。 jenkins 每次都应该增加二进制文件的内部版本号,并且内部版本号应该设置到二进制文件(dll 和 exe)中。在崩溃时,您会在事件查看器中看到版本,并且可以从崩溃的版本中获取所有文件,包括源文件。
我还建议将 jenkins 内部版本号写入二进制文件。因此,您始终可以登录 jenkins select 内部版本号,然后获取所有调试文件,并在日志中查看它是从哪个 svn 版本构建的(因此您也可以签出正确的源代码)。对于版本控制 dll 或 exe 文件,您可以使用(在 .net 中使用脚本编辑配置文件):http://www.codeproject.com/KB/install/VerPatch.aspx?msg=3207401 并将其集成到构建批处理中。
在这里你可以找到詹金斯:https://jenkins-ci.org/
关于处理 .pdb 文件的最佳实践,网络上存在一些相互矛盾的信息,如果您能提供说明,我将不胜感激。
例如,this source says that "PDB files are as important as source code", while this 表示 .pdbs 不属于源代码管理。
- 在正常开发(调试模式)期间构建生成的 .pdb 文件是否应该提交给源代码管理?
- 是否只应将用于 release/production 的 .pdb 文件存储在源代码管理中?
我希望第一个问题的答案是 "no",第二个问题的答案是 "yes",但我可能遗漏了什么。
请参阅 this post。您不需要将 *.pdb 文件添加到源代码管理。这些文件是在您启动新的调试会话时生成的。
PDB 文件不应进入源代码管理。它们是构建工件的一部分,应该与构建的输出一起保存(而不是在构建后丢弃)。应保留历史构建并跟踪当前发布的部署版本,因此如果需要,您可以从相应的存档构建中提取 PDB。
除了 Craig W. 的正确答案:
除了源代码控制系统(例如svn/git),您还应该使用构建系统来存档任何构建。
Jenkins 是一个不错的构建系统,它是一个安静且易于理解的构建系统,具有我期望的所有功能。如果你分发你的软件,你登录到 jenkis 并点击 "build now"。然后 Jenkins 从 svn/git 中检出当前版本并构建您的软件(使用批处理)并保存所有文件,包括 debug/symbol 文件。 jenkins 每次都应该增加二进制文件的内部版本号,并且内部版本号应该设置到二进制文件(dll 和 exe)中。在崩溃时,您会在事件查看器中看到版本,并且可以从崩溃的版本中获取所有文件,包括源文件。
我还建议将 jenkins 内部版本号写入二进制文件。因此,您始终可以登录 jenkins select 内部版本号,然后获取所有调试文件,并在日志中查看它是从哪个 svn 版本构建的(因此您也可以签出正确的源代码)。对于版本控制 dll 或 exe 文件,您可以使用(在 .net 中使用脚本编辑配置文件):http://www.codeproject.com/KB/install/VerPatch.aspx?msg=3207401 并将其集成到构建批处理中。
在这里你可以找到詹金斯:https://jenkins-ci.org/