.net - 如何快速更改生成和使用 NuGet 包的自定义库?

标签 .net nuget

我的问题类似于this one .我有一个解决方案,A ,其中包含项目 BC :

A
|-B  ---> B.nupkg
|          ^
|-C  ------|

过去,C使用项目引用 B .现在,我已经转换了 B以便它在我构建时生成一个 NuGet 包(<GeneratePackageOnBuild>true</GeneratePackageOnBuild> 中的 B.csproj),我在 C 中引用了它.我这样做是因为许多消费者只想要 B但不是 C .

所以现在如果我想更改 B并调试它,我必须执行以下操作:

  1. 构建解决方案
  2. 复制B.nupkg来自 bin\Debug到一个中心位置
  3. 再次重建解决方案(并可能清除我的 NuGet 缓存)
  4. 运行

过去,对于项目引用,我所要做的就是在更改 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/

相关文章:

c# - 使用任务并行库Task.WhenAny()时如何处理异常

c# - 验证证书 TLS/SSL 服务器

c# - WCFTestClient 通过禁用 TLS 1.0 和 TLS 1.1 给出错误消息

.net - .net 4.5 升级后 System.Web.Http 丢失

visual-studio-2013 - 将 packages.config 更改为 somethingelse.config

c# - 如何将 nuget 包 .Net Standard 嵌入到 C# 项目中?

docker - dotnet restore 查找错误的 nuget 源

c# - 如何从单独的 C# 项目调用 VSTO AddIn 方法?

.net - .Net 标准 DLL 项目的构建文件夹中缺少 Nuget Pkg Dll。 dll 不是复制本地的吗?在 Visual Studio 2019 中修复?

android - Mono.Zeroconf NuGet 包不会安装在 Xamarin 中