8

我已经更新了一个类库的project.json目标netstandard1.3net64.

随着这一变化:

$ 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

如何诊断为什么要使用更高版本?

4

4 回答 4

6

我在 NuGet问题上对此进行了跟进,@emgarten 指出该NETStandard.Library软件包只有 1.6.0 版本,但该 1.6.0 版本包含netstandard1.3.

所以在这种情况下,我请求的 1.3 版本在任何地方都不存在,并且警告是通知它正在使用更高版本。

然而,诊断仍然可以提供更多信息。如果它也让您感到困惑并且您希望看到它更清楚,您可以就该问题进行投票。

于 2016-10-13T07:51:03.427 回答
1

当您不处理 NuGet 时,就像在我的情况下您自己的项目一样,也会发生此错误。

你要做的第一件事是确保你有正确的版本在Solution Items -> global.json.

然后您可能需要刷新引用此项目的每个 project.json,因为 VS2015 并不总是正确刷新:

  1. 打开 project.json 并切断给出警告的行
  2. 保存文件并等待“正在恢复包...消息”消失
  3. 将行粘贴回
  4. 再次保存文件

另一种强制刷新的方法是dotnet restore --no-cache在解决方案或项目级别运行。

于 2017-02-23T10:15:14.750 回答
1

对我来说,只需删除锁定文件 ( project.lock.json) 即可。删除此文件后,Nuget 自动恢复所有包,问题消失。

免责声明

尽管它对我有用,但我不确定这是否是一种适用于所有人的深刻的做事方式。因此,在删除此文件之前,请注意您在做什么。

于 2018-03-07T13:19:44.443 回答
0

当一个公共库项目在多个解决方案中时,我遇到了这个问题。

更改了库项目的目录位置,并在一个解决方案中更新了 global.json 文件。

另一方面,针对项目的新文件位置更新了 sln 文件。但是,global.json 没有。由于项目已移动到更高的目录,旧的 global.json 文件引用了过于具体的位置。

于 2017-04-24T13:42:53.510 回答