我的问题类似于this one .我有一个解决方案,A
,其中包含项目 B
和 C
:
A
|-B ---> B.nupkg
| ^
|-C ------|
过去,C
使用项目引用 B
.现在,我已经转换了 B
以便它在我构建时生成一个 NuGet 包(<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
中的 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 包(听起来您已经这样做了),并同时将两个 NuGet 包上传/复制到您的 NuGet 商店。
在输出的 nupkg 文件中,项目引用将自动转换为 NuGet 包引用;你不需要做任何事情。
关于.net - 如何快速更改生成和使用 NuGet 包的自定义库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69453253/