我遇到了一些麻烦。在这种情况下,我不知道标题是合适的,如果你有更好的想法,可以随意编辑它。
所以,基本上这就是目前的情况:
目前我有四个项目(不是真实姓名,但架构完全相同):
Client
(主要客户逻辑)Server.Main
(主服务器逻辑)Server.Extensions
(服务器的某些功能,例如助手等可以单独使用,不应该依赖来自Server.Main的东西)Shared
(客户端和服务器之间的共享代码)对于每个项目,我创建一个Nuget-Package并将其上传到我的在线存储库。此存储库目前是私有的,仅用于开发目的。
以下是摘要,什么项目使用Nuget-packages:
Client
使用Shared
的Nuget包。Server.Main
使用Shared
&的Nuget包。 Server Extensions
。Server.Extensions
使用Shared
的Nuget包。目前这对我来说很好...我可以轻松更新我的存储库以进行测试,并使用我的软件包的最新更新版本。
但问题出现了:
我想现在与其他人分享我的项目(例如GitHub社区)。但是当他们获得这些项目时,他们无法访问我的私有存储库,而nuget包管理器将无法找到这些包。
此外,我的架构还存在另一个问题:当他们修复某些内容时,例如在Shared
中,他们无法测试更改,因为Client
& Server
将始终使用存储库中的Nuget包,而不是固定/更改的本地代码。
我想在所有其他三个项目中直接引用Shared
项目。这是否意味着,每当我更新Shared
时,我都会更新所有其他三个项目?
我认为,我的整个Nuget架构是错误的。但我不知道如何以更好的方式正确地做到这一点。有没有人对我有更好的方法?
答案 0 :(得分:1)
我不会说这一定是错的。如果有人试图使用和处理您的解决方案,那么P2P(项目到项目)引用可能是最好的,因为最小的开销和在构建和后续调试会话期间更早发现问题的可能性。
您仍然可以在构建过程中轻松地为所有三个创建NuGet包,并通过在后期构建步骤中打包或使用NuProj等工具将其用于集成测试。