无法安装软件包。锁定文件未更改,跳过锁定文件写入。

3

我正在尝试通过VS 2017包管理器控制台安装System.ComponentModel.Annotations

命令:

Install-Package System.ComponentModel.Annotations -Version 4.3.0

结果:

正在还原 C:\MyTest.csproj 的软件包... 正在安装 NuGet 包 System.ComponentModel.Annotations 4.3.0。 正在提交还原... 将锁定文件写入磁盘。路径: C:\MyTest\obj\project.assets.json 已完成 C:\MyTest.csproj 的还原。 正在还原 C:\MyTest.csproj 的软件包... 正在提交还原... 锁定文件未更改。跳过写入锁定文件。 已完成 C:\MyTest.csproj 的还原。 执行 nuget 操作花费了 4.12 秒 已用时间 00:00:05.2258592

注:

我使用的是.NETCoreApp1.1框架。


1
你是怎么知道这个包无法安装的?当我恢复/更新该包时,输出窗口也显示了相同的结果,但在检查项目依赖项和项目文件(.csproj)后,我发现该包已经安装到了项目中。而且结果并没有提示安装失败,只是提示跳过锁定文件写入,所以你应该仔细检查该包是否已安装。如果没有安装,请提供更多信息或一些截图。 - Leo Liu
关于这个问题怎么样了?你能告诉我最新的相关信息吗? - Leo Liu
@Leo-MSFT,您说得完全正确。只有在该软件包已安装到项目中时才会出现此消息。我花了一些时间才理解这个问题,当然还有您的评论帮助。谢谢。 - TheKingPinMirza
我已将我的评论转为答案,你可以将其标记为答案,这样我们就可以关闭这个线程了。对其他遇到相同问题的社区来说,也能更容易地找到答案,这是有益的。谢谢。 - Leo Liu
2个回答

3
无法安装包。锁定文件未更改,跳过锁定文件写入。
当我恢复/更新该软件包时,在输出窗口中也得到了相同的结果,但在检查项目依赖项和项目文件(.csproj)后,我发现该软件包已安装到项目中。 结果并没有提示安装失败,只是提示跳过锁定文件写入:
正在恢复C:\ MyTest.csproj的程序包...提交还原...锁定文件未更改。 跳过锁定文件写入。
因此,只有在该软件包已安装到项目中时才会出现此消息。 当您收到该日志时,应仔细检查项目引用,确保软件包已安装。

1

你还需要检查项目的某个父目录中是否有一个Directory.Build.targets文件,它定义了软件包的版本。如果是这种情况(我遇到过这个问题),VS将忽略你安装的版本,并保留在该文件中定义的版本,因此你必须在那里更新版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接