首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

VS代码“无法找到或打开PDB文件”,即使pdb存在并加载其他csproj pdb文件也是如此

问题:VS代码“无法找到或打开PDB文件”,即使pdb存在并加载其他csproj pdb文件也是如此。

回答: 在使用VS代码进行开发时,有时会遇到“无法找到或打开PDB文件”的错误提示。这个错误通常是由于调试器无法找到或加载程序数据库(PDB)文件引起的。PDB文件包含了程序的调试信息,用于在调试过程中定位代码的位置和变量的值。

解决这个问题的方法有以下几种:

  1. 确保pdb文件存在:首先,需要确认pdb文件确实存在于相应的位置。如果pdb文件被删除或移动了,调试器就无法找到它。可以通过重新生成解决方案或项目来生成新的pdb文件。
  2. 检查调试设置:在VS代码中,需要确保调试设置正确。可以通过以下步骤进行检查和设置:
    • 打开项目文件夹中的.vscode文件夹,找到launch.json文件。
    • 确保launch.json文件中的"program"属性指向正确的可执行文件。
    • 确保"symbolOptions"属性中的"searchPaths"包含了pdb文件所在的路径。
  • 清理和重新生成解决方案:有时,解决方案中的临时文件可能会导致调试问题。可以尝试清理解决方案并重新生成它,以清除可能存在的冲突或错误。
  • 检查项目配置:如果在加载其他csproj pdb文件时也出现相同的问题,可能是项目配置的问题。可以检查项目文件(.csproj)中的调试配置,确保正确地生成和加载pdb文件。
  • 禁用PDB文件加载:如果无法解决问题,可以尝试禁用PDB文件的加载。在VS代码中,可以通过以下步骤进行设置:
    • 打开“工具”菜单,选择“选项”。
    • 在弹出的对话框中,选择“调试”选项卡。
    • 在右侧的“调试信息”部分,将“加载程序数据库文件”选项设置为“关闭”。

总结: 当在VS代码中遇到“无法找到或打开PDB文件”的错误时,可以通过确认pdb文件的存在、检查调试设置、清理和重新生成解决方案、检查项目配置以及禁用PDB文件加载等方法来解决问题。如果以上方法都无法解决,可能需要进一步检查项目的配置和环境设置,或者尝试使用其他调试工具进行调试。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云开发者工具套件(Tencent Cloud Toolkit):https://cloud.tencent.com/product/tencentcloud-toolkit
  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云原生应用引擎(Tencent Cloud Native):https://cloud.tencent.com/product/tencentcloud-native
  • 云数据库 MySQL 版(TencentDB for MySQL):https://cloud.tencent.com/product/tencentdb-mysql
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 人工智能(AI):https://cloud.tencent.com/product/ai
  • 物联网(IoT):https://cloud.tencent.com/product/iotexplorer
  • 区块链(Blockchain):https://cloud.tencent.com/product/baas
  • 腾讯云元宇宙(Tencent Cloud Metaverse):https://cloud.tencent.com/solution/metaverse
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

dotnet 打包 NuGet 的配置属性大全整理

,而不是使用外链图片下载地址,解决一些奇怪的地方无法拉到包泄露隐私 GeneratePackageOnBuild 生成的时候,构建出 NuGet 包。...此时构建时生成的 PDB 文件里面将包含项目的所有生成相关的源代码。...如此可以方便在发布给其他开发者使用时,其他开发者在调试时可以获取到只读的源代码,从而让其他开发者更好进行调试 <!...推荐在源代码无需保护的项目,如内部开源项目外部开源项目,以及 PDB 不对外发布的项目里,设置此属性为 true 从而将源代码嵌入到 PDB 文件里面,方便调试 详细请参阅 Roslyn 通过 EmbedAllSources...比如说最常用的是将 PDB 文件放入到 NuGet 里面,即可通过此属性设置输出文件里面的 pdb 文件需要被添加到包里面,如以下代码 <!

1.3K20

vs使用指南

0VS技巧卸载与移除 1、卸载可以临时解除项目与解决方案生成的关联;移除可以解除项与解决方案、项目文件夹的关联但 不移除其物理文件,移除没有卸载那么彻底,但他们都不会移除物理文件,只会删除关联 。...Visual Studio会根据csproj里的XML定义来管理项目文件以及相关其他一些种类非常丰富的数据及操作,MSBuild也会根据csproj文件来得知编译这个项目需要有哪些依赖,默认输出路径,Pre-Build...如果是个可执行程序,操作系统需要的只是exe,dll,甚至是配置文件资源文件,而并非在开发中举足轻重的csproj,sln,dbproj等文件。...现在说到之前提到的“pdb文件需要放在Debug目录下才有效果”,其实不然。...Debug目录只是VS的模板所“默认存在”的编译规则所生成的目录而已,我们在调试时使用pdb文件完全可以由VS指定pdb文件存在的目录——甚至我们根本不需要VS也能使用pdb文件

57720

vs2015编写c#项目下各文件解析 vs项目结构解析vs项目结构解析

比如VS布局,项目最后编译的而又没有关掉的文件(下次打开时用) ps:大概就是保存一些与代码本身无关的一些配置. *.suo 是一种文件的格式。...总结: sln和suo文件共同组成了解决方案的记录和配置,VS解决方案中各种配置都存在这里,具体的每一个细节就不一一列举,以上可以给大家一个整体的认识。...Visual Studio会根据csproj里的XML定义来管理项目文件以及相关其他一些种类非常丰富的数据及操作,MSBuild也会根据csproj文件来得知编译这个项目需要有哪些依赖,默认输出路径,Pre-Build...Visual Studio和MSBuild都是开发工具,这就是csproj存在的唯一意义:为“开发环境”提供信息。而到了运行环境中,根本不会有人(操作系统?)...不生成.pdb文件的方法   如图,打开工程属性的build标签页,将构成选为「Release」后打开「详细设定」。

2.8K51

修复 VisualStudio 构建时没有将 NuGet 的 PDB 符号文件拷贝到输出文件

本文告诉大家如何修复 VisualStudio 构建时没有将 NuGet 的 PDB 符号文件拷贝到输出文件夹的问题。...如果 VisualStudio 构建时没有将 NuGet 的 PDB 符号文件拷贝到输出文件夹,那将会在调试的时候,由于找不到 PDB 符号文件加载符号失败 尽管这个坑从 2017 到现在,来来回回修了好多次...本文将告诉大家如何强行设置拷贝 PDB 符号文件 方法是在自己的项目的 csproj 项目文件夹里面添加如下代码 <Target Name="IncludeSymbolFromReferences"...任务,这个任务里面,将会尝试去找所有的引用的 pdb 文件,如果找到了,就放入到输出拷贝里面 如此即可在构建时,将引用的 NuGet 包的 DLL 对应 PDB 文件拷贝到输出文件夹,而不需要关注具体的框架版本...当然,在每个项目都拷贝以上的代码也不是好主意。

1K10

.NET Core 很酷,你不得不知!

当我们谈论.NET Core 平台时,事情很快变得比较复杂,在这里,我只引用官方文档: .NET Core 运行时:类型系统,程序集加载,垃圾收集器,本机互操作和其他基本服务。...它选择托管运行时,提供程序集加载策略启动应用程序和工具。 以上内容总结: 运行时,可以通过执行.NET Core 的二进制文件。....csproj 文件包含有关运行时,包,版本和其他项目配置属性的信息。 它默认很小。...可以删除 hello-world.pdb,因为它仅用于调试目的,但默认情况下会生成 pdb即使在发布模式下也是如此。...您可以通过将此代码段添加到 hello-world.csproj(在标记下)来禁用此自动生成 pdb

94930

在.net项目中生成的pdb(程序数据文件)是什么文件

调试器如何加载PDB ? Visual Studio调试器假设PDB文件位于与DLLEXE相同的文件夹下。...每一次程序集编译生成唯一的PDB文件,这意味着,即使没有代码改变,也不能使用在以前的编译中创建的PDB文件。...如果PDB被部署,并且用户无法访问二进制文件,那么向他们显示堆栈跟踪信息让他们知道应用程序的内部信息不是一个好主意。...当您在debug点和open Modules窗口停止执行时(如下所示),您将会发现所有的dll(外部内部)加载到该断点之前,但是默认情况下的符号状态将显示“无法找到打开pdb文件”,除了您的pdb。...要加载这些符号,可以去Debugging->Symbols ,检查微软的符号服务器,并将缓存符号作为任何共享文件夹在这个目录中提供,以便所有的开发人员都可以使用它。

1.3K30

C#中的bin和obj文件夹有什么用?

在添加引用时,.NET会记录添加的引用绝对路径,这些设置保存在“每用户”文件中,(Solution.csproj.user),可以通过记事本打开查看。...在bin\debug\目录中有两个文件,除了要生成的.exe.dll文件外,还有个.pdb文件,这个.pdb文件中就记录了代码中的断点等调试信息。...在\bin\release\目录下只有一个.exe.dll文件,Release模式下不包含调试信息,代码进行了优化。...这个事实说明,obj在开发过程中,也是会被引用到的,并不只是在编译的时候起作用。....csproj C#项目文件,用VS打开这个文件就可以直接打开这个项目,自动生成,不需要看。   .csproj.user 是一个配置文件,自动生成的,会记录项目生成路径、项目启动程序等信息。

3.9K31

dotnet 使用 SourceLink 将 NuGet 链接源代码到 GitHub 等仓库

,那么只需要安装 Microsoft.SourceLink.GitHub 库,同时额外添加一些配置就可以 打开 csproj 文件,添加以下代码 <!...commit 找不到。...在 dotnet 里面使用 pdb 符号文件是用来方便 VS 等工具进行调试,这个文件的作用就是告诉调试工具,对应的代码和二进制 dll 的关系 而在 NuGet 的 nupkg 包不包含 pdb 文件...原因是其实大量的开发者不关注调试本身,而是存在有大量的构建的还原,此时用不着 pdb 文件。...GitHub 等仓库的源代码关联,此时就需要在创建的 pdb 文件做一点更改了,让 pdb 文件关联的文件是 GitHub 仓库的文件 因此在使用 SourceLink 是推荐添加 snupkg 包,

1.3K30

PDB文件详解

所以只要模块在当前电脑上载入,调试器自然地会根据模块当中的路径信息找到相应PDB文件载入。...同样PDB文件中记录的源文件路径也是绝对路径,所以PDB文件只要在当前电脑上载入,调试进入相应模块时,都能够匹配到记录的源文件,然后可视化地查看相应信息。...所以完全通过PDB文件调试,意义与作用均没有多大。如果要让其他人能够调试自已的代码PDB文件和源码都应该提供,只提供PDB文件的意义不大。如果确实有类似的需求,可以保留相应生成的PDB文件。...现在重点说3,即设置符号文件路径。 通过Options->Debuggin->Symbols或在Call Stack窗口右键找到Symbol Settings打开下面的窗口。...通过上图即可以看到VS加载PDB文件的顺序,这与MSDN中介绍的是一样的。 Symbol Settings窗口里,还可以从服务器上缓存符号文件,可是我试了很多方式,均没有成功。

1.7K10

VisualStudio 2019 调试项目使用 Portable PDB 提示不支持 PDB 格式

在新的 .NET 上,将会默认使用 Portable PDB 符号格式,而如果 VisualStudio 配置了使用托管兼容模式,那么将在加载符号的时候,将会提示不支持 PDB 格式 在发现自己的代码因为没有加载符号而断点无法命中提示当前不会命中断点...,还没有为该文档加载任何符号,就应该通过 调试->窗口->模块 打开模块界面,找到自己要调试的程序集,右击加载符号 如果 VisualStudio 找不到默认的符号文件,可以自己设置文件夹 但是在使用...此时的 VS 将因为默认不会忽略 pdb 符号文件时间戳而失败 在自己找 PDB 文件,将会提示不支持 PDB 格式,或者英文版本的 PDB format is not supported 提示 解决的方法不是让...VisualStudio 2019 忽略 PDB 文件校验,而是通过配置的方法禁用使用托管兼容模式。...只有在将默认调试引擎替换为旧版本才需要使用托管兼容模式,而旧版本的调试不支持新版本的 PDB 格式 点击工具->选项->调试 找到 使用托管兼容模式 选项,禁用即可 在英文版本的 VS 对应的选项是 Use

69830

svn 提交代码 自动过滤技巧

操作   在用svn管理版本时,有时希望在提交到服务器时,能过滤掉指定后缀名的所有文件指定名称的文件夹、文件名。   ...  打开SVN客户端-----常规设置------全局忽略样式,添加 bin obj debug temppe *.suo *.pdsync *.projdata *.vbproj.user *.csproj.user...*.vbproj.webinfo *.csproj.webinfo *.scc *.vspscc *.vssscc _ReSharper.* *.pdb *.vshost.exe *.manifest...我做的操作是,新建文件夹,在其中新建Debug目录,suo文件,还有其他文件。测试了在上述配置添加和未添加的情况,如图:   添加配置前: ?   添加配置后 ?   貌似已经略有成效。   ...我们再来试试,如果是通过vs新建的项目,签入情况是如何呢,如图: ? 总结   设置了过滤Debug、Release等文件夹,如果有文件也叫这个名字,而且是无后缀名的,该文件同样被过滤。

1.4K50

Visual Studio 2017 “无法查找打开PDB文件“ 解决方法

运行的时候提示无法查找打开PDB文件 解决办法(注意:必须使用管理员身份运行VS) 第一步 打开调试窗口的选项 第二步 调试——>常规——>勾选启用源服务器支持 它会弹出警告窗口,点“是”即可...点击运行,它自动连接服务器,将符号下载到本地加载。 一两分钟后,如果显示下面的结果,说明OJBK了。...2,如果还是提示”无法查找打开PDB文件”,尝试以管理员身份运行VS(经笔者测试,不以管理员运行的VS无法把符号保存到指定路径上,可能是与文件夹的权限有关)。...最近很多人私信我能不能分享以下PDB文件,我已将下载好的PDB文件(仅仅是项目工程编译时所下载的部分,可能不完整)上传到百度网盘。...(除了一些文件对应的pdb微软没有和其他情况以外),应该算是比较完整的一个PDB集合吧。

5.8K20

PDB 文件

PDB 文件 ---- 什么是 PDB 文件 PDB (Program Data Base) 即程序的基本数据,是 VS 编译链接时生成的文件,每个程序集(EXE DLL)都有一个与之对应的 PDB...PDB 的唯一性和重要性 每个程序集(PE 文件,EXE DLL)都会有一个与之对应的 PDB 文件,并且每次编译生成的 PE\PDB 文件都不同。...注意:即使是同一份代码,在同一台计算机上编译,每次的生成的 PDB 都是不同的,一定要保存好发布版本的 PDB 文件。...我们可以使用 DumpBin.exe 来从 PE 文件中获取 GUID 信息,在控制台中启动该程序,传入 PDB文件 和 /headers参数 即可。...接下来找到对应的 PDB 文件,检查其中 GUID 信息是否与 PE 一致,推荐使用 PdbInspector 来查看 PDB 文件的内部信息。

78720

c语言pdb文件,VISUAL c+中的pdb文件及其作用「建议收藏」

如果使用生成文件创建 C/C++ 应用程序,指定 /ZI /Zi 而不指定 /Fd 时,则最终将生成两个 PDB 文件: VC80.PDB (更笼统地说就是 VCx0.PDB,其中 x 表示 Visual...因此,即使每个源文件都包含公共头文件(如 ),这些头文件中的 typedef 也只存储一次,而不是在每个 OBJ 文件中都存在。...链接器将创建 project.PDB,它包含项目的 EXE 文件的调试信息。project.PDB 文件包含完整的调试信息(包括函数原型),而不仅仅是在 VCx0.PDB找到的类型信息。...如果调试器在该位置无法找到 PDB 文件或者如果路径无效(例如,如果项目被移动到了另一台计算机上),调试器将搜索包含 EXE 的路径,即在“选项”对话框(“调试”文件夹,“符号”节点)中指定的符号路径。...调试器不会加载与所调试的二进制不匹配的 PDB

1.1K40

Roslyn 通过 EmbedAllSources 将源代码嵌入到 PDB 符号文件中方便开发者调试

咱造了一个轮子,咱可以非常方便将这个轮子库作为 NuGet 发布出去,造福其他开发者,或者毒害其他开发者。为什么说是毒害呢?因为有时候这个库存在坑,此时使用这个库的开发者就受到了伤害。...假设此时既有 PDB 符号文件,又有源代码,那自然就可以在调试的时候进入源代码进行调试 为了减少误解,必须说明的是,有 PDB 符号文件,可以方便进行代码关联调试。...但是有 PDB 符号文件的话,调试更好评 默认的发布的库,都是不会带上源代码的,此时空有 PDB 符号文件,还不能愉快调试源代码。...PDB 符号文件的方法很简单,只需要在 csproj 项目文件添加如下代码即可 true 默认的 NuGet 包是不带 PDB...另一个不足在于当前只支持 cs 等代码文件,还不支持 xaml 文件 此功能其实也是 SourceLink 的一个功能,需要 VisualStudio 2019 新版本才能支持。

38120

PDB文件:每个开发人员都必须知道的

本文描述了PDB文件的存储和内容。同时还描 述了debugger如何找到binay相应的PDB文件,以及debugger如何找到与binay对应的源代码文件。...2部分信息: * 源代码文件名字和行数; * 和局部变量的名字; * 所有的其他的数据都已经包含在了.NET Metadata中了; 三 PDB如何工作 当你加载一个模块到进程的地址空间的时候...第一个毫无疑问就是文件的名字,如果加载 zzz.dll,debugger则查找zzz.pdb文件。...在文件名字相同的情况下debugger还通过嵌入到PDB和binay的GUID来确保 PDB和binay的真正的匹配。 所以即使没有任何的代码修改,昨天的binay和今天的PDB是不能匹配的。...development模式后,如果DEVPATH没有定义路径不存在的话会导致程序启动时异常”Invalid value for registry”。

49310

探索 .Net Core 的 SourceLink

介绍 Source Link是一组软件包和一个规范, 它将一些元数据添加到PDB文件,以将本地文件重新映射到GitHub上的文件,因此Visual Studio可以在这需要时下载文件, 该项目的目的是可以为使用...使用NuGet包是向项目添加依赖项的一种非常方便的方法,但是,当您遇到NuGet软件包的问题想对其进行调试时,会有点麻烦,你可能需要从在github 查看源代码,或者直接git clone到本地, Visual...Studio 2017 15.3以上版本中已经集成了Source Link , 现在你可以非常方便的在VS中调试 .Net Core 和 Nuget分发的软件包的源代码,并且不需要安装 ReSharper...(Azure Devops,Gitlab) 也是支持的,让它支持SourceLink 创建完成后,首先需要引入 Microsoft.SourceLink.GitHub 右键项目编辑项目文件, 编辑csproj...准备工作完成后,项目右键,直接打包,会同时生成 .nupkg 和 .snupkg(符号包) 打开 .snupkg 文件,查看 PDB Sources, 发现pdb 文件包含了源代码文件的url地址

1.1K30

C# 反编译神器之ILSpy

代码保存功能也做得不错,当点击一个类型时,选择File->Save Code会反编译当前的类型保存到指定的文件中,当选择程序集时,Save Code保存为一个项目(csproj)文件,并且把它所有的类型加到这个项目中...如图所示,无法显示正在调试的变量num的值,因为代码已经经过优化。...ILSpy的debugger是以插件形式存在的,请确保包含ILSpy.Debugger的Plugin。 根据我们的理解,调试.NET程序集一定需要PDB文件才可以。...然而ILSpy却没有产生PDB文件(no PDB files are generated),而且它不可以调试ASP.NET Web application和Web 服务。...4、根据VS的错误提示,引用相应的程序集文件,最后生成成功。 是不是很酸爽 !!!

4.6K20
领券