【发布时间】:2008-09-18 00:37:26
【问题描述】:
既然您可以使用反射器对 .Net 应用程序进行逆向工程,是否有任何理由不将 pdb 文件与应用程序一起提供?如果您确实将它们与它一起发布,那么您的堆栈跟踪将包含问题所在的行号,这在它崩溃时很有用。
请为每条评论输入 1 个投票理由。
【问题讨论】:
既然您可以使用反射器对 .Net 应用程序进行逆向工程,是否有任何理由不将 pdb 文件与应用程序一起提供?如果您确实将它们与它一起发布,那么您的堆栈跟踪将包含问题所在的行号,这在它崩溃时很有用。
请为每条评论输入 1 个投票理由。
【问题讨论】:
运送 pdb 不会给用户带来任何额外的便利。因此,没有理由将 pdb 文件与应用程序一起发送。此外 pdb 文件通常很大。
您应该使用本地 Microsoft 符号服务器来快速访问与错误报告对应的 pdb 文件,而不是发送 pdb 文件。 Here你可以找到符号服务器的详细使用说明。
【讨论】:
将 PDB 与您的应用程序一起提供可以更轻松地进行逆向工程,因为它包含局部变量/对象名称、函数原型等。
【讨论】:
大多数人都希望发布经过优化的构建。但是,如果您发布带有优化构建的 pdb,则您获得的源代码行号可能会关闭。
【讨论】:
Reflectors 可以获得 .NET 应用程序的高级版本的 MSIL 代码,但这并不意味着它一定是可用/可破解的...如果没有私有变量和函数的名称以及 .NET Reflector 在没有 PDB 文件的情况下无法访问的其他内容。
显然,如果您使用任何不错的混淆器(我个人喜欢 {smartassembly},但因为它缺乏交叉混淆),那么您将失去其所有保护功能,只是为了增加行号的价值,这这不是一个真正公平的权衡。
不管怎样,行号被高估了!
【讨论】:
你为什么要运送超出你需要的东西?
【讨论】:
除了它们在任何严肃的项目中都非常沉重之外?不,如果您不介意人们对您的软件进行逆向工程,那没有理由。
【讨论】: