0

我有一个我们在整个解决方案中使用的 nuget 包库,托管在 Azure Artifacts 中。这些 nuget 包是在启用调试的情况下构建的,因此会创建符号并将其包含在 nuget 包中。

我们在 Visual Studio(主要是 Net Core 3.1)中的项目使用 Nuget 包管理器以正常方式引用这些 nuget 包。

每个解决方案都启用了 SourceLink,因此如果我有任何调试要求需要单步执行引用的 nuget 包中的代码,我可以设置一个断点,并且可以很好地执行此操作,因为 Visual Studio 直接从 Azure Artifacts 下载源代码。

这一切都完美无缺。

问题是生产力问题。如果需要更改 nuget 包中的代码,我必须打开 nuget 包的解决方案,进行更改、推送并等待 Azure 构建。构建后,我去 Nuget 包管理器,更新包,重新启动应用程序并“希望”解决了这个问题。对于一些棘手的事情,我可以循环这个过程几次,这是一个生产力杀手。

有没有办法从引用它的解决方案中直接在 nuget 包的解决方案中进行调试?或者是否有人有更好的流程,他们使用的效率更高?

4

2 回答 2

1

您可以尝试使用可以在 nuget 中解析为最新版本的浮动版本。这样,当有更新的包时,您的解决方案将在构建期间加载最新版本的包。

<ItemGroup>
    <PackageReference Include="NuGet.Packaging" Version="*" />
</ItemGroup>
于 2020-11-23T09:44:09.440 回答
0

有没有办法从引用它的解决方案中直接在 nuget 包的解决方案中进行调试?

当您需要频繁修改和调试nuget包中的源代码时,使用项目引用而不是nuget包。

考虑生产效率时请考虑使用项目参考,考虑可移植性时请尽量使用nuget。您可以查看我之前的帖子以获取详细说明。

对于您的情况,您可以通过以下选项将 nuget 包的项目添加到您的引用解决方案中Existing project:</p>

在此处输入图像描述

然后选择.csprojnuget包的项目文件。

将该项目添加到您的解决方案后,您可以将该项目添加为您的参考项目的项目参考。现在,您可以直接修改和调试 nuget 包的项目。

完成这一阶段的工作后,就可以回到nuget包的项目所在的解决方案,打包新版本的nuget包并发布。

于 2020-11-24T06:35:03.470 回答