.net - 将 .exe 部署在与 .pdb 不同的位置

标签 .net exe pdb-files

如何部署 .NET exe,但仍然在其他位置使用 pdb 文件?我担心将其与 exe 保留在同一位置可能会导致最终用户意外删除 pdb。然而,我们希望在用户遇到错误时查看错误详细信息(例如模块、行号)。如果有其他方法无需 .pdb 即可获取此信息,请告诉我。提前致谢!

最佳答案

您可以通过在应用程序启动时设置环境变量 _NT_SYMBOL_PATH 来完成此操作。搜索调试符号时,将检查此环境变量(如果有)的路径中是否有 .pdb 文件。将符号放入某个文件夹中(假设是“%localappdata%\MyApp\Symbols”),然后执行以下操作:

var symbolsPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "MyApp", "Symbols");
Environment.SetEnvironmentVariable("_NT_SYMBOL_PATH", symbolsPath);

关于.net - 将 .exe 部署在与 .pdb 不同的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36582364/

相关文章:

C# Visual Studio 服务调试 "The breakpoint will not currently be hit. No Symbols have been loaded for this document"

c# - 如何将源代码嵌入到pdb中,并让调试器使用它?

c# - 如何使用 IL 改变盒装结构

.net - 我的 .net mvc Sp​​ark View 未通过 MsDeploy (TFS 2010) 部署在服务器上

linux - 如何使用来自 GoDaddy(使用 Ubuntu)的 .SPC 或 .PEM 文件对代码(.EXE 文件)进行签名?

python - 杀死Python脚本中没有响应的exe文件

Python 作为可执行程序

c# - 如何从 C# System.DirectoryService 调用抛出的异常中识别 LDAP 错误?

.net - 在 .net 中重用数据集

c# - 如果没有 PDB 文件,C# 反编译器如何工作?