9

使用 ServiceStack 3.9.71.0 编译项目时,Visual Studio 中出现了以下警告(似乎也影响了最新版本)。不知道为什么它之前没有出现,但是在我创建了一个引用我的主项目的测试库并且都引用了相同的服务堆栈 DLL 之后它已经开始出现了:

警告 2 发现同一依赖程序集的不同版本之间存在无法解决的冲突。当日志详细程度设置为详细时,这些引用冲突会列在构建日志中。C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets 1635

检查构建日志显示:

10> “ServiceStack.Interfaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”和“ServiceStack.Interfaces, Version=3.9.60.0, Culture=neutral, PublicKeyToken=null”之间存在冲突。10> 选择“ServiceStack.Interfaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”是因为它是主要的,而“ServiceStack.Interfaces, Version=3.9.60.0, Culture=neutral, PublicKeyToken=null”不是。10> 依赖于“ServiceStack.Interfaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”的引用 [C:\proj\packages\ServiceStack.Common.3.9.71\lib\net35\ServiceStack.Interfaces.dll ] ...

此错误是正确的,因为除了旧版本的 ORMLite 之外,NuGet 中的最新版本似乎还引用了旧版本的 ServiceStack.Interfaces ( http://i.imgur.com/4vw3069.jpg )。我已经从我的系统中删除了所有以前版本的 ServiceStack,因此它不会拾取任何旧的 DLL。我的项目只有对 ServiceStack、common、interfaces 和 text 的引用;我删除了 ORM,因为我不使用它,但将它添加到两个项目中并没有帮助。

有点不确定如何解决这个错误,因为 Github 自 3.9.60 以来似乎没有更新,有什么想法吗?

4

1 回答 1

4

这只是一个警告,它应该构建,并且可以安全地忽略。该错误消息确实表明构建系统正确选择了 v1.0.0.0。

“ServiceStack.Interfaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”被选中

大约 4 个月前,在本次提交中,故意将版本从 3.9 重置为 1.0 。这与 ServiceStack v4 的 beta 版本相吻合。大概是 v3 程序集版本重置为低数字以允许在不侵犯 v4 版本编号的情况下创建未来的 BSD 构建,并表示项目所有权的明确更改。

于 2014-01-22T13:40:35.360 回答