我正在处理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管道中的索引源和发布符号任务来发布符号,但是我收到错误消息,当他们尝试调试并逐步执行时,在消费者方找不到我的源代码文件成代码。我在下面尝试过,但没有用。
我们如何真正调试由于“索引源和发布符号”任务而产生的代码?
解决方案
我可以按照以下链接中的确切步骤解决问题
答案 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中的答案中查看详细步骤:
希望这会有所帮助。