Service Fabric 构建中的 PDB

Posted

技术标签:

【中文标题】Service Fabric 构建中的 PDB【英文标题】:PDBs in Service Fabric Builds 【发布时间】:2019-05-20 03:57:48 【问题描述】:

为什么在 Azure DevOps 中构建的 Service Fabric 模板默认包含将 PDB 移出 SF 包的步骤,从而阻止它们部署到集群?

就我而言,我希望它们包括在内,因此例外情况包括行号。

虽然我可以修改(或删除)这些 PDB 步骤,但我想知道他们为什么要这样做,以防我遗漏某些东西,例如我不熟悉的最佳实践。

【问题讨论】:

【参考方案1】:

我不知道这里有一些严格的最佳实践,但这是我根据 SF 文档得出的个人结论。

部署


从部署的角度来看,最重要的包参数之一是包大小

影响:

    压缩/上传/解包所需的时间 - 拥有大量.dll 文件将导致拥有大量.pdb(每个.dll 一个)。这反过来又可以显着增加封装尺寸。大包需要更多时间来压缩、上传和解包。 存储消耗 - 听起来很明显,但大包裹会消耗更多存储空间。这听起来微不足道,但是当您有 10 个服务时,每个包约为 100MB(未压缩大小),您已经消耗了 1GB 的存储空间。拥有多个具有多个服务的应用程序可能会导致消耗大量存储空间。所以每个 MB 都很重要。

您可以找到有关主题here的一些信息。

构建管道


在我看来,.pdb 文件被复制到 artifacts 目录的原因非常简单——默认模板假定您有一些流程来管理调试符号,即您可以添加额外的步骤并将它们上传到符号服务器。

【讨论】:

从部署级别来看这是有道理的,但是为什么不直接删除 PDB 呢?为什么它会移动它们,但仍将它们包含在工件中? @NathanA 我已经更新了关于构建管道的答案。

以上是关于Service Fabric 构建中的 PDB的主要内容,如果未能解决你的问题,请参考以下文章

构建 Service Fabric Web Api 时出现错误无法从 Fabric.StatelessServiceContext 转换为 Fabric.ServiceInitializationPa

Service Fabric Guest .Net Core 3.1 API exe 的 Azure DevOps 构建管道在创建包时失败

活动解决方案配置未配置为构建或部署 Service Fabric 应用程序项目

Azure App Service 与 Azure Service Fabric [关闭]

Azure Service Fabric 使用情况

如何测试安装了哪个版本的 Service Fabric 运行时