1
11
当您为应用程序部署调试符号时,很容易有人来对您的工作进行逆向工程,有些人认为这是不可取的。同样,您必须部署更多的文件,并且您的可部署项目会变得更大。PDB文件本身不会导致应用程序变慢,因为传送PDB并不总是排除放弃优化(您只需小心——默认的“调试”项目设置在生成PDB时往往不会优化输出)。 |
2
13
我知道我会为此挨打,但是… 我同意DaveMarkle的观点,但我想补充一点,发布PDB文件的好处是,正如您所说,非常适合调试。 也就是说,我不卖软件,我写的代码都是公司内部使用的。在这种情况下,我不认为将调试代码和PDB文件一起投入生产会有什么问题。我从未见过性能受到影响,而且老实说,如果我们的用户遇到未处理的异常,他们很少给我们正确的信息。当然,我们试图正确地处理异常,但正如您所知,错误会发生。我们的策略是向所有项目添加一个全局异常处理程序,并将这些事件记录到数据库中。这些错误包含行号,因为我们确实包含调试文件,因此,我们能够快速识别和响应错误代码,修复错误代码,并获得更多无缺陷应用程序。对我(以及我们的用户)来说,这是一个巨大的好处,我不想没有它。 因此,如果您处于类似的情况下,我建议您忘记官方立场(在本例中),继续发布PDB文件,其中有一个重要的警告。 请确保使用PDB文件部署的任何Web应用程序,完全确保正确处理所有异常,并且不会无意中在标准ASP.NET错误页中暴露代码行。 |
3
2
为您的发布版本创建PDB,但不要发送它们。使用匹配的构建和源代码将PDB保存在安全的地方。如果发生实时崩溃或类似情况,可以使用PDB进行宰后调试,方法是 Debugging Tools for Windows 或Visual Studio。 |
4
0
我发现为发布版本构建调试信息也很有用——这有助于捕获错误。它不会使程序运行较慢。但是,如果您不希望其他人能够更容易地对PDB文件进行反向工程,那么您不应该将其与应用程序一起发送。只给测试人员。 |
Karl · 如何引发PrintPage的事件? 2 年前 |
Daniel · LINQ从列表的dataTable中提取部分匹配 2 年前 |
limelatte · 如何在datagridview中屏蔽特定列? 2 年前 |
Orsi · 选择嵌套列表的最大值和最小值。网 2 年前 |
D T · 如何为Excel Com设置公式? 2 年前 |
Lenin · 将数组中的每个元素与另一个数组中的相应元素相乘 2 年前 |