Visual Studio不会从我的Nupkg中读取.pdb

时间:2019-04-24 17:57:07

标签: c# visual-studio msbuild nuget

我已经生成了一些包含.pdbs的nuget软件包,其内容如下:

<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>

我已验证.pdb位于dll旁边的lib / * /文件夹中生成的.nupkg中。

但是,当我在Visual Studio 2017中使用这些nuget程序包时,它仅提取.dll,而不提取.pdb。让我无法调试软件包。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

因为您可以确保.nupkg包含.pdb文件。请确保两个项目都处于调试模式。

在本地使用nuget软件包有时与从nuget.org安装它有所不同。 .pdb源将在解决方案中找不到。默认情况下,.pdb将位于以下路径:C:\Users\xxx\.nuget\packages\PackageName\xxx下。

更新

  1. 如果nuget包项目和使用它的项目在同一台计算机上。 AllowedOutputExtensionsInPackageBuildOutputFolder属性就足够了。由于您在同一台计算机上有源文件,因此调试引擎可以轻松找到它,以便您可以进入它。

  2. 但是如果是这样的情况:您开发了nuget包。并分享给其他团队成员。为了使它们可以Step into,您应该将xx.cs文件嵌入到.nupkg中。

在这种情况下,AllowedOutputExtensionsInPackageBuildOutputFolder可能无法正常工作。我找不到使用它嵌入源文件的方法。您可能需要使用this issue之类的nuget pack command。实际上,Stephan打包项目的方式是正确的。我已经检查了它的工作原理,并将源文件和.dll和.pdb嵌入到.nupkg中。当然,通过这种方式,您需要通过Solution => Properties => Debug Source files将路径添加到源文件存储库中: enter image description here

此外:您可以在post-build event中添加nuget pack命令,以便每次成功构建项目时,它都会为您打包。

此外,您可以将source links视为源控件,这样就不会通过Solution => properties配置源路径。

相关问题