簡體   English   中英

DLL在GAC中時(生產中),PDB和.NET Framework調試控制ini文件

[英]PDBs and .NET Framework Debugging Control ini files when DLLs are in the GAC (in Production)

由於各種原因,我們的所有組件都部署在GAC中,包括客戶端(winforms)和服務器(由WCF Windows服務托管)計算機。 我們使用VIsual Studio 2013 / .Net 4.5.1

我們沒有在我知道是錯誤的地方部署或存儲PDB。 我們現在正在研究糾正此問題,因此,為了提高我們的異常可追溯性和調試目的,我們是:

  • 使用pdbonly生成PDB並在msbuild流程中優化true,然后安全地存儲它們,尚不確定是否要使用符號服務器,還是將其與二進制文件一起存儲。

  • 將DLL和pdbs部署到GAC(C:\\ Windows \\ Microsoft.NET \\ assembly \\ GAC_32 ...)中的生產環境中,這是為了在堆棧跟蹤中獲取行號。 不確定是否值得,因為優化通常會更改行號。 如果有人對此有任何評論,那就太好了,但是目前我們有很長的方法,而且不知道行號會浪費時間:-)

  • 如果所描述的要求我們還部署了一些PowerShell腳本生成INI文件來禁用/啟用優化這里 因此計划是,如果我們的客戶發現錯誤,那么我們可以關閉優化並在需要時獲取正確的行號。

  • 除了使用ProcDump進行此操作外,我們還指示客戶每當遇到難於使用procdump -e 1 XXXX在開發中重現的異常時生成一個小型轉儲。

我的問題:

我知道在DLL所在的相同文件夾中(在GAC中)復制PDB和INI文件看起來不正確。 那么...那我們可以放在哪里呢? 我還沒有找到任何解決方案,因此在生產中無法使用PDB和INI文件。

我也將其發布在MS論壇上,如果有人回答,我會添加交叉引用...但是我已經搜索了幾個小時,卻沒有找到任何信息...!

在咨詢了Microsoft的人員之后,看來我們在做正確的事情,即將pdb和ini文件放入gac文件夾中是正確的。

此外,每當使用exception.stacktrace時,就會加載pdb(即性能損失)。

希望能幫助到你!

來源: http//blogs.msdn.com/b/visualstudioalm/archive/2015/08/14/debugging-optimized-code.aspx (請參閱文章底部的評論)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM