当编译库或应用程序(例如VisualStudioIDE中的控制台应用程序)时,在应用程序的Debug文件夹中,除了.dll或.exe之外,还会多出一个扩展名为“.pdb”的文件”。这个.pdb文件的具体用途是什么? 最佳答案 PDB包含调试符号,因此您可以将已编译的二进制文件发送给您的客户,而无需向他们公开您的源代码算法和其他私有(private)细节。如果您的应用程序在客户站点上出错,您可以从他们那里获取故障转储(使用DrWatson),将其带回您的开发工作站并调试崩溃,调试器将结合崩溃使用符号文件向您展示源代码、数据结构等。在许
在C#项目的VisualStudio中,如果您转到“项目属性”>“构建”>“高级”>“调试信息”,您有三个选项:none、full或仅限pdb。哪个设置最适合发布版本?那么,full和pdb-only有什么区别?如果我使用full会有性能影响吗?如果我使用pdb-only是否会更难调试生产问题? 最佳答案 我会使用pdb-only进行构建。您将无法将调试器附加到已发布的产品,但如果您获得故障转储,则可以使用VisualStudio或WinDBG检查崩溃时的堆栈跟踪和内存转储。如果您使用full而不是pdb-only,您将获得相同的好
在C#项目的VisualStudio中,如果您转到“项目属性”>“构建”>“高级”>“调试信息”,您有三个选项:none、full或仅限pdb。哪个设置最适合发布版本?那么,full和pdb-only有什么区别?如果我使用full会有性能影响吗?如果我使用pdb-only是否会更难调试生产问题? 最佳答案 我会使用pdb-only进行构建。您将无法将调试器附加到已发布的产品,但如果您获得故障转储,则可以使用VisualStudio或WinDBG检查崩溃时的堆栈跟踪和内存转储。如果您使用full而不是pdb-only,您将获得相同的好
何时在VisualStudio2010中启用“浏览以查找源”?(见下文)另外,我想启用它,以便我可以浏览到已下载的源代码来自http://referencesource.microsoft.com/的文件.这会很有用,因为Microsoft并不总是发布PDB/sourcecode与他们的最新补丁同时进行。因此,例如,如果我想进入DateTime,我真的不关心不涉及DateTime的最新补丁。我只想浏览我从http://referencesource.microsoft.com/下载的代码.经过一些调查,我发现dia2dump是查看PDB文件内容的有用工具。(它在C:\ProgramFi
何时在VisualStudio2010中启用“浏览以查找源”?(见下文)另外,我想启用它,以便我可以浏览到已下载的源代码来自http://referencesource.microsoft.com/的文件.这会很有用,因为Microsoft并不总是发布PDB/sourcecode与他们的最新补丁同时进行。因此,例如,如果我想进入DateTime,我真的不关心不涉及DateTime的最新补丁。我只想浏览我从http://referencesource.microsoft.com/下载的代码.经过一些调查,我发现dia2dump是查看PDB文件内容的有用工具。(它在C:\ProgramFi
我需要一些可以从DLL文件(C#.NET代码)生成PDB的东西,是否有任何免费程序可以做到这一点? 最佳答案 实际上,从1.2版本开始,您也可以使用dotPeek来做到这一点。在AssemblyExplorer中右键单击程序集,然后选择“GeneratePdb”。它还可以选择一次性为所有引用的程序集生成文件。 关于c#-从.NETDLL文件生成PDB?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/
我需要一些可以从DLL文件(C#.NET代码)生成PDB的东西,是否有任何免费程序可以做到这一点? 最佳答案 实际上,从1.2版本开始,您也可以使用dotPeek来做到这一点。在AssemblyExplorer中右键单击程序集,然后选择“GeneratePdb”。它还可以选择一次性为所有引用的程序集生成文件。 关于c#-从.NETDLL文件生成PDB?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/
我正在使用MSBuild生成我的nuget包。是否需要设置任何命令,以允许它包含我的.pdb文件,以便在调试时单步执行源代码?我不希望源文件包含在引入nuget包的项目中。 最佳答案 如果您使用的是VS201715.4或更高版本,您可以在项目文件中定义一个MSBuild属性$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb这在NuGet#4142中讨论但是,仍然存在一个问题,因为新项目系统不会将pdb从包复制到.NETCore3.0+的bin/publish文件夹中。,
我正在使用MSBuild生成我的nuget包。是否需要设置任何命令,以允许它包含我的.pdb文件,以便在调试时单步执行源代码?我不希望源文件包含在引入nuget包的项目中。 最佳答案 如果您使用的是VS201715.4或更高版本,您可以在项目文件中定义一个MSBuild属性$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb这在NuGet#4142中讨论但是,仍然存在一个问题,因为新项目系统不会将pdb从包复制到.NETCore3.0+的bin/publish文件夹中。,
我想部署用C#完成的应用程序的发布版本。当我使用Release构建时配置,我仍然可以看到.pdb文件已生成,这意味着我的应用程序仍然可以调试。这也意味着我的代码中某处存在一些调试信息,从而稍微降低了速度。如果这是真的,我怎样才能完全抑制二进制文件中产生的任何调试信息?你也知道发布的原因吗.pdb?Release配置有Optimizecode检查,只有TRACE常量已定义,而不是DEBUG.感谢您的协助。 最佳答案 如果要禁用pdb文件生成,则需要在单击“Advanced...”后使用项目属性中可用的“Advancedbuildset