我已将类库的project.json
更新为定位netstandard1.3
和net64
。
随着这一变化:
$ dotnet restore
log : Restoring packages
warn : Dependency specified was NETStandard.Library (>= 1.3.0) but ended up with
NETStandard.Library 1.6.0.
我正在发布图书馆,确实需要定位netstandard1.3
/ net46
。
如何诊断为何使用更高版本呢?
答案 0 :(得分:6)
我在NuGet issue上跟进了这个,@ emgarten指出NETStandard.Library
包只有1.6.0版本,但1.6.0版本包含{{1}的程序集}。
因此,在这种情况下,我请求的1.3版本在任何地方都不存在,并且警告是通知它使用的是更高版本。
然而,诊断仍然可以提供更多信息。你可以vote on the issue,如果它也让你绊倒,你希望看到它更清楚。
答案 1 :(得分:1)
当你不处理NuGet时,但就我自己的项目而言,也可能发生此错误。
您要做的第一件事是确保您在Solution Items -> global.json
中引用了正确的版本。
然后你可能需要刷新每个project.json引用这个项目,因为VS2015并不总是正确刷新:
强制刷新的另一种方法是在解决方案或项目级别运行dotnet restore --no-cache
。
答案 2 :(得分:1)
对我来说,只需删除锁定文件(project.lock.json
)就可以了。删除此文件后,Nuget会自动恢复所有软件包,问题就会消失。
<强>声明强>
虽然它对我有用,但我不确定这是否是一种深刻的做法,对每个人都有用。因此,请在删除此文件之前注意您的操作。
答案 3 :(得分:0)
当一个公共库项目在多个解决方案中时,我遇到了这个问题。
更改了库项目的目录位置,并在一个解决方案中更新了global.json文件。
另一方面,sln文件已更新为项目的新文件位置。但是,global.json没有。由于项目已移至更高的目录,旧的global.json文件引用的位置过于具体。