我最近检查了 github 一个我最近更新到 VS2022 的解决方案。当我在另一台机器上克隆解决方案时,在一个可移植库项目中,通过 NuGet 安装的库 Newtonsoft.Json 的 using 语句出现构建错误。另一个具有相同 NuGet 参考的可移植库项目构建良好。如果我删除 NuGet 引用并将其重新添加到失败的项目中,它就可以工作。两个项目都有相同的 package.config 文件。奇怪的是,我签入解决方案的开发机器上的解决方案资源管理器的参考视图显示了该项目中 Newtonsoft.Json 的不同图标,该图标无法在另一台机器上构建。在良好构建的机器上,它看起来像这样:
在错误的构建机器上,解决方案资源管理器显示中缺少 Newtonsoft.Json 引用,即使 NuGet 包管理器将其显示为已为项目安装。卸载 Newtonsoft.Json 并重新安装后,Newtonsoft.Json 的图标与图像中 JTLanguageModelsPortable 库显示的图标相同。
这是否与新的 PackageReference 机制有关?我可能已经在一段时间前完成了右键单击迁移。如果是这样,为什么它在签入版本中不起作用?办理登机手续是否遗漏了什么?我可以回到 package.config 文件吗?(我将此文件添加回项目中,但没有修复它。)