C# 是否有任何理由不装运pdb';你的申请怎么样?

C# 是否有任何理由不装运pdb';你的申请怎么样?,c#,.net,C#,.net,由于您可以使用reflector对.Net应用程序进行反向工程,因此有任何理由不随应用程序一起提供pdb文件吗?如果您确实随附了它们,那么堆栈跟踪将包括问题所在的行号,这在崩溃时非常有用 请在每条评论中只输入一个投票理由。随应用程序提供PDB可以更轻松地进行反向工程,因为它包含局部变量/对象名称、函数原型等。除了在任何严肃的项目中都极其繁重之外,为什么还要提供更多的内容?不,如果你不介意人们对你的软件进行反向工程,那就没有理由了。Reflector可以获得你的.NET应用程序的MSIL代码的高级

由于您可以使用reflector对.Net应用程序进行反向工程,因此有任何理由不随应用程序一起提供pdb文件吗?如果您确实随附了它们,那么堆栈跟踪将包括问题所在的行号,这在崩溃时非常有用


请在每条评论中只输入一个投票理由。

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

除了在任何严肃的项目中都极其繁重之外,为什么还要提供更多的内容?不,如果你不介意人们对你的软件进行反向工程,那就没有理由了。

Reflector可以获得你的.NET应用程序的MSIL代码的高级版本,但这并不意味着它一定是可用的/可黑客的。。。如果没有私有变量和函数的名称,以及没有PDB文件.NET Reflector无法访问的其他内容,很多代码对随意阅读都没有意义

显然,如果您使用的是任何像样的模糊器(我个人喜欢{smartassembly},但它没有交叉模糊),那么您将失去所有保护,仅仅是为了行号的附加值,这不是一个真正公平的权衡


无论如何,行号被高估了

大多数人都希望发布优化版本。但是如果你的pdb是经过优化的,那么你得到的源代码行号很可能是错的

配送pdb不会给用户带来任何额外的便利。因此,没有理由随应用程序一起提供pdb文件。此外,pdb文件通常具有较大的大小


您不应发送pdb文件,而应使用本地Microsoft Symbol Server快速访问与错误报告对应的pdb文件。您可以找到有关如何使用Symbol Server的详细说明。

这与您在错误报告代码中留下的原因相同-它对发生崩溃的人没有用处,但它将帮助您尽快修复,祝您在应用程序中包含PDB好运。