【问题标题】:Is there any reason to not ship the pdb's with your application?是否有任何理由不将 pdb 与您的应用程序一起提供?
【发布时间】:2008-09-18 00:37:26
【问题描述】:

既然您可以使用反射器对 .Net 应用程序进行逆向工程,是否有任何理由不将 pdb 文件与应用程序一起提供?如果您确实将它们与它一起发布,那么您的堆栈跟踪将包含问题所在的行号,这在它崩溃时很有用。

请为每条评论输入 1 个投票理由。

【问题讨论】:

    标签: c# .net


    【解决方案1】:

    运送 pdb 不会给用户带来任何额外的便利。因此,没有理由将 pdb 文件与应用程序一起发送。此外 pdb 文件通常很大。

    您应该使用本地 Microsoft 符号服务器来快速访问与错误报告对应的 pdb 文件,而不是发送 pdb 文件。 Here你可以找到符号服务器的详细使用说明。

    【讨论】:

      【解决方案2】:

      将 PDB 与您的应用程序一起提供可以更轻松地进行逆向工程,因为它包含局部变量/对象名称、函数原型等。

      【讨论】:

        【解决方案3】:

        大多数人都希望发布经过优化的构建。但是,如果您发布带有优化构建的 pdb,则您获得的源代码行号可能会关闭。

        【讨论】:

          【解决方案4】:

          Reflectors 可以获得 .NET 应用程序的高级版本的 MSIL 代码,但这并不意味着它一定是可用/可破解的...如果没有私有变量和函数的名称以及 .NET Reflector 在没有 PDB 文件的情况下无法访问的其他内容。

          显然,如果您使用任何不错的混淆器(我个人喜欢 {smartassembly},但因为它缺乏交叉混淆),那么您将失去其所有保护功能,只是为了增加行号的价值,这这不是一个真正公平的权衡。

          不管怎样,行号被高估了!

          【讨论】:

            【解决方案5】:

            你为什么要运送超出你需要的东西?

            【讨论】:

            • 与您在错误报告代码中留下相同的原因 - 它对发生崩溃的人没有用,但它会帮助您尽快修复
            • 祝你好运,然后在你的应用程序中包含 pdb。
            【解决方案6】:

            除了它们在任何严肃的项目中都非常沉重之外?不,如果您不介意人们对您的软件进行逆向工程,那没有理由。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-05-25
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多