Dot-Net

在發布應用程序中包含 PDB 文件的優點和缺點

  • May 13, 2010

我有一個 VB.net 應用程序。目前,該應用程序的發布版本是在沒有 PDB 文件的情況下生成的。這給了我錯誤日誌,缺少有用的詳細資訊,例如行號。我正在考慮將 PDB 文件包含在未來的建構中,但我想知道這樣做的優缺點是什麼(性能方面、大小方面、程式碼安全方面)

當您為應用程序部署調試符號時,很容易有人過來對您的工作進行逆向工程,有些人認為這是不受歡迎的。同樣,您必須部署更多文件,並且您的可部署項目會變得更大。PDB 文件本身不會導致應用程序變慢,因為傳遞 PDB 並不總是排除之前的優化(您只需要小心——預設的“調試”項目設置往往不會優化您的輸出)生成 PDB)。

我知道我會因此而挨打,但是…

我同意 Dave Markle 的觀點,但我想補充一點,正如您所說,發布 PDB 文件的一個優點是非常適合調試。

也就是說,我不賣軟體,我寫的程式碼都是供我們公司內部使用的。在這種情況下,我認為將調試程式碼與 PDB 文件一起投入生產沒有問題。我從未見過性能下降,老實說,如果我們的使用者遇到未處理的異常,他們很少向我們提供正確的資訊。當然,我們會嘗試正確處理異常,但如您所知,錯誤會發生。我們的策略是為所有項目添加一個全域異常處理程序,並將這些事件記錄到數據庫中。這些錯誤包含行號,因為我們確實包含調試文件,因此,我們能夠快速辨識錯誤程式碼並做出反應,修復它,並獲得更多無錯誤的應用程序。對我(和我們的使用者)來說,這是一個巨大的好處,我不想沒有。

因此,如果您處於類似情況,我說忘記官方立場(在這種情況下)並繼續發布帶有一個重要警告的 pdb 文件。

請確保您使用 PDB 文件部署的任何 Web 應用程序,完全確保所有異常都得到正確處理,並且您不會無意中在標準 Asp.NET 錯誤頁面中暴露程式碼行。

引用自:https://stackoverflow.com/questions/2825813