使用ServiceStack 3.9.71.0编译项目时,我在visual studio中出现了以下警告(似乎也会影响最新版本)。不知道为什么它之前没有显示但是在我创建了一个引用我的主项目并且都引用了相同服务堆栈DLL的测试库之后它已经开始出现:
警告2发现同一版本的不同版本之间存在冲突 无法解决的依赖程序集。这些参考 当日志详细程度设置为时,构建日志中会列出冲突 详细。 C:\ Program Files (x86)\ MSBuild \ 12.0 \ bin \ Microsoft.Common.CurrentVersion.targets 1635
检查构建日志显示:
10 -10 “ServiceStack.Interfaces”之间存在冲突, Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null“and “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,版本= 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后没有更新,任何想法?
答案 0 :(得分:4)
这只是一个警告,它应该构建,并且可以安全地被忽略。错误消息确实表明构建系统正确选择了v1.0.0.0。
“ServiceStack.Interfaces,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null”被选中
该版本有意重置为3.9至1.0,大约4个月前in this commit。这与ServiceStack v4的beta版本相吻合。可能是v3程序集版本,其中重置为较低的数字,以便在不侵犯v4版本编号的情况下创建未来的BSD构建,并表示项目所有权的明确更改。