我已经生成了一些包含.pdbs的nuget软件包,其内容如下:
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
我已验证.pdb位于dll旁边的lib / * /文件夹中生成的.nupkg中。
但是,当我在Visual Studio 2017中使用这些nuget程序包时,它仅提取.dll,而不提取.pdb。让我无法调试软件包。
我做错了什么?
答案 0 :(得分:0)
因为您可以确保.nupkg包含.pdb文件。请确保两个项目都处于调试模式。
在本地使用nuget软件包有时与从nuget.org安装它有所不同。 .pdb源将在解决方案中找不到。默认情况下,.pdb将位于以下路径:C:\Users\xxx\.nuget\packages\PackageName\xxx
下。
更新:
如果nuget包项目和使用它的项目在同一台计算机上。 AllowedOutputExtensionsInPackageBuildOutputFolder
属性就足够了。由于您在同一台计算机上有源文件,因此调试引擎可以轻松找到它,以便您可以进入它。
但是如果是这样的情况:您开发了nuget包。并分享给其他团队成员。为了使它们可以Step into
,您应该将xx.cs文件嵌入到.nupkg中。
在这种情况下,AllowedOutputExtensionsInPackageBuildOutputFolder
可能无法正常工作。我找不到使用它嵌入源文件的方法。您可能需要使用this issue之类的nuget pack command
。实际上,Stephan打包项目的方式是正确的。我已经检查了它的工作原理,并将源文件和.dll和.pdb嵌入到.nupkg中。当然,通过这种方式,您需要通过Solution => Properties => Debug Source files将路径添加到源文件存储库中:
此外:您可以在post-build event中添加nuget pack
命令,以便每次成功构建项目时,它都会为您打包。
此外,您可以将source links视为源控件,这样就不会通过Solution => properties配置源路径。