Azure DevOps NuGet Feed使用者进入源代码

时间:2019-03-19 19:46:08

标签: .net azure-devops nuget nuget-package azure-pipelines

我正在处理Azure DevOps管道,并在其中发布NuGet Feed。该供稿包含abc.dll和abc.pdb文件。我的供稿的使用者可以将abc.dll和abc.pdb放入其bin文件夹中。他们还能够调用abc.dll中的方法。

我的问题是如何将源代码包含到PDB文件中。我希望我的提要的使用者在调试时进入代码。当前,当他们这样做时,他们会收到一条消息,指出未找到源代码文件。

我知道让其他人知道您的代码会带来安全隐患,但我们只想尝试看看它是如何工作的。我不希望消费者做任何事情。只需获取我的供稿,调用方法,并逐步编写代码即可。

更新

我能够解决以下问题。我在包中添加了源代码文件,消费者可以将它们下载到本地计算机上,并可以进入代码中。

Is it possible to host both regular and symbols packages in a NuGet local feed on a network share?

但是我担心我有很多源代码文件,这将导致feed的大小增加,而且我也不想将我的源代码文件下载到用户本地计算机上。

我能够使用Azure DevOps管道中的索引源和发布符号任务来发布符号,但是我收到错误消息,当他们尝试调试并逐步执行时,在消费者方找不到我的源代码文件成代码。我在下面尝试过,但没有用。

https://docs.microsoft.com/en-us/azure/devops/artifacts/symbols/debug-with-symbols-visual-studio?view=azure-devops

我们如何真正调试由于“索引源和发布符号”任务而产生的代码?

解决方案

我可以按照以下链接中的确切步骤解决问题

https://marcduerst.com/2018/01/11/how-to-build-and-publish-nuget-packages-with-source-symbols-to-vsts/

https://docs.microsoft.com/en-us/azure/devops/artifacts/symbols/debug-with-symbols-visual-studio?view=azure-devops

1 个答案:

答案 0 :(得分:1)

  

Azure DevOps NuGet Feed使用者进入源代码

该文档主要介绍了Index Sources & Publish Symbols task任务,并介绍了如何调试软件包。并且此任务用于将符号发布到Azure Artifacts中的符号服务器,以便我们可以使用索引符号来调试应用程序。

如果我们想像您所说的那样进入源代码,则需要包含源代码。但是我们不能将源代码包含到PDB文件中,因为在Azure Artifacts中这只是一个符号服务器,我们不能包含源代码。即使我们可以将源代码包含到PDB文件中,也仍然不能进入源代码,因为Visual Studio / MSBuild无法知道应使用哪个源代码。

  

Symbol服务器使调试器可以自动检索   正确的符号文件,但是在不知道产品名称,内部编号或软件包名称的情况下不是源代码。

因此,要解决此问题,我们必须在nuget软件包中包含源代码,而不是PDB文件。然后我们可以在Visual Studio中指定源代码。

从我在another thread中的答案中查看详细步骤:

  • 将pdb和源代码文件放在NuGet包中,以及 dll。
  • 将源代码添加到“调试源文件”中以获取解决方案, 引用程序包。

希望这会有所帮助。

相关问题