【问题标题】:Dealing with References & Nuget Packages处理引用和 Nuget 包
【发布时间】:2023-03-07 17:09:01
【问题描述】:

我遇到了一些麻烦。我不知道在这种情况下什么问题标题是合适的,如果您有更好的想法,请随时编辑它。

所以,基本上现在的情况是这样的:

目前我有四个项目(不是实名,但架构相同):

  1. Client(主客户端逻辑)
  2. Server.Main(主服务器逻辑)
  3. Server.Extensions(服务器的某些功能,例如助手等可以独立使用,不应依赖 Server.Main 中的某些内容)
  4. Shared(客户端和服务器之间共享代码)

对于每个项目,我都会创建一个 Nuget-Package 并将其上传到我的在线存储库。此存储库目前是私有的,仅用于开发目的。

这里总结一下,什么项目用什么Nuget-packages:

  1. Client 使用 Shared 的 Nuget 包。
  2. Server.Main 使用 SharedServer Extensions 的 Nuget 包。
  3. Server.Extensions 使用 Shared 的 Nuget 包。

目前这对我来说很好...我可以轻松地更新我的存储库以进行测试并使用我的包的最新更新版本。

但问题来了:

我现在想与其他人分享我的项目(例如 GitHub 社区)。但是当他们拿到项目后,他们无法访问我的私有存储库,并且 nuget 包管理器将找不到这些包。

此外,我的架构还有另一个问题:他们何时修复某些问题,例如在Shared 中,他们将无法测试更改,因为ClientServer 将始终使用存储库中的Nuget 包,而不是固定/更改的本地代码。

我考虑过在所有其他三个项目中直接引用Shared 项目。这是否意味着,每当我更新 Shared 时,我也会更新所有其他三个项目?

我认为,我的整个 Nuget 架构是错误的。但我不知道如何正确/以更好的方式做到这一点。有人对我有更好的方法吗?

【问题讨论】:

    标签: c# reference nuget nuget-package


    【解决方案1】:

    我不会说这一定是错误的。如果有人尝试使用和处理您的解决方案,P2P(项目到项目)引用可能是最好的,因为开销最小,并且在构建和后续调试会话期间早期发现问题的可能性更高。

    您仍然可以在构建过程中轻松地为这三个包创建 NuGet 包,并在集成测试中使用它们,方法是在构建后步骤中打包它们或使用 NuProj 等工具。

    【讨论】:

    • 谢谢 :) 我刚刚想通了,如何在 nuget 包中引用其他 nuget 包。我一直在使用 PostBuild 脚本,它会自动完成,但我会尝试从使用 Nuget Package Explorer 手动构建它们开始。那样的话,我希望能够从我的源代码中删除所有 nuget 的东西,这样我有一天可以将它上传到 github。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多