如何快速更改生成和使用 NuGet 包的自定义库?
How do I quickly make changes to custom libraries that generate and consume NuGet packages?
我的问题类似于this one。我有一个解决方案 A
,其中包含项目 B
和 C
:
A
|-B ---> B.nupkg
| ^
|-C ------|
过去,C
使用了对 B
的项目引用。现在,我已经转换 B
以便它在我构建时生成一个 NuGet 包(<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
in B.csproj
),我在 C
中引用它。我这样做是因为许多消费者只想要 B
而不是 C
.
所以现在如果我想更改 B
并调试它,我必须执行以下操作:
- 构建解决方案
- 将
B.nupkg
从 bin\Debug
复制到中央位置
- 再次重建解决方案(并可能清除我的 NuGet 缓存)
- 运行
过去,对于项目引用,我所要做的就是在更改 B
之后构建和 运行,然后我就可以单步执行新更改的代码。我如何回到之前使用项目参考的一键式流程?有没有办法在 Debug 模式下使用项目引用,在 Release 模式下使用 NuGet 包?
听起来项目 B 和 C 位于相同(或足够接近)的位置和解决方案 (A);在那种情况下,你把它复杂化了。
在解决方案中,只需在 B 和 C 之间使用项目引用(在您需要的任何方向)。这绝对没问题并且符合预期 - 您可以一起调试、构建 B 和 C 等,一切都会正常工作,而无需在 开发期间 周围复制任何内容。当您准备好为其他消费者(本地或通过 CI)进行部署时,只需将所有内容构建在一起,确保 B 和 C 都配置为生成 NuGet 包(听起来您已经完成此操作),并且 upload/copy 同时将两个 NuGet 包打包到您的 NuGet 存储中。
在输出的 nupkg 文件中,项目引用将自动转换为 NuGet 包引用;你什么都不用做。
我的问题类似于this one。我有一个解决方案 A
,其中包含项目 B
和 C
:
A
|-B ---> B.nupkg
| ^
|-C ------|
过去,C
使用了对 B
的项目引用。现在,我已经转换 B
以便它在我构建时生成一个 NuGet 包(<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
in B.csproj
),我在 C
中引用它。我这样做是因为许多消费者只想要 B
而不是 C
.
所以现在如果我想更改 B
并调试它,我必须执行以下操作:
- 构建解决方案
- 将
B.nupkg
从bin\Debug
复制到中央位置 - 再次重建解决方案(并可能清除我的 NuGet 缓存)
- 运行
过去,对于项目引用,我所要做的就是在更改 B
之后构建和 运行,然后我就可以单步执行新更改的代码。我如何回到之前使用项目参考的一键式流程?有没有办法在 Debug 模式下使用项目引用,在 Release 模式下使用 NuGet 包?
听起来项目 B 和 C 位于相同(或足够接近)的位置和解决方案 (A);在那种情况下,你把它复杂化了。
在解决方案中,只需在 B 和 C 之间使用项目引用(在您需要的任何方向)。这绝对没问题并且符合预期 - 您可以一起调试、构建 B 和 C 等,一切都会正常工作,而无需在 开发期间 周围复制任何内容。当您准备好为其他消费者(本地或通过 CI)进行部署时,只需将所有内容构建在一起,确保 B 和 C 都配置为生成 NuGet 包(听起来您已经完成此操作),并且 upload/copy 同时将两个 NuGet 包打包到您的 NuGet 存储中。
在输出的 nupkg 文件中,项目引用将自动转换为 NuGet 包引用;你什么都不用做。