Servicestack nuget 版本控制

Servicestack nuget versioning

不到 3 个月前,我们开始使用 servicestack v4 构建不同的项目。

我们在 4.0.52 版本安装了不同的 servicestack 包(servicestack.Common、servicestack.Interfaces、servicestack.Client 等)

由于某些 installation/update 我们只升级了 4.0.54 的 servicestack.Interfaces,这导致了这个错误:

Method 'PostFilesWithRequest' in type 'ServiceStack.JsonServiceClient' from assembly 'ServiceStack.Client, Version=4.0.52.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.

将所有服务栈包升级到4.0.54后,错误解决(新版IRestClient新增定义)

我的问题是:

我认为他们使用语义版本控制,但似乎并非如此(补丁应该向后兼容)

我知道我的问题听起来更像是抱怨,但我很确定我不是唯一遇到此问题的人:

ServiceStack NuGet update 4.0.22 to 4.0.31 caused errors on deployment

我们也开始开发一个servicestackapi,把不同的服务组合成一个插件,这样维护起来会比较麻烦。 也许我们必须想出一种独特的方式来一次处理所有这些更新。

缺少方法异常是由于运行 不同版本的脏包在一起。您需要确保所有项目的所有包都引用相同的版本。客户端不一定必须具有与服务器库匹配的相同版本,因为它们没有二进制耦合,但仍然建议遵循,因为一些新的客户端功能可能依赖于同时发布的新服务器功能。

ServiceStack 不会为 NuGet 提供次要补丁,每个 NuGet 版本都是一个主要版本,版本之间的任何修复都发布在 MyGet pre-release packages

ServiceStack官方NuGet包同步部署,ServiceStack的60个NuGet包全部同时发布,版本相同。每个版本都有可能在任何一个修改后的 ServiceStack 包中进行非向后兼容的更改,因此它们应该同时升级。