今天刚刚开始发生一个奇怪的 Visual Studio 2022 错误。 我试图为我的 .NET C# 解决方案安装/更新/整合 NuGet 包(之前运行良好),然后每次我尝试通过 NuGet UI 执行此操作时,都会出现以下弹出窗口:
单击“保存”会出现以下对话框:
单击“是”会使对话框消失。
但是当我取消主资源管理器窗口时,它会再次弹出。
为什么会发生这种情况? 我已确认我没有在任何其他编辑器中打开该项目文件。
最终,它停止弹出,但最终我需要的软件包没有安装:
运行 Restore NuGet Packages for Solution 也不起作用。 我的解决方案中的每个项目都得到了这个:
Failed to resolve all items referenced by 'xxx.xxx.xxx\xxx.xxx.xxx.csproj'. This message can typically be ignored. The issue may be resolved by fully restoring and building the solution. If the unresolved item is a project reference this can lead to an incomplete NuGet restore result and missing package references. To ensure that restore is able to find all projects verify that all projects are referenced correctly and exist on disk.
========== Finished ==========
查看您的错误消息,
缺少的文件是..\packages\MSTest.TestAdapter.1.3.2 uild 等45 \MSTest.TestAdapter.props.
缺少的文件是.. \packages\Microsoft.Testing.Platform.1.2.1 uild 等标准2.0 Microsoft.Testing.Platform.prons.
此错误可能在多种情况下发生。请检查以下内容以缩小您的问题范围。
1.如果您使用
PackageReference
管理格式,此错误可能是从 packages.config
到 PackageReference
迁移遗留下来的问题,需要从项目文件中手动删除。
2.如果使用
packages.config
,该错误表示该包未安装在解决方案根目录的packages文件夹中。
nuget install xxx -OutputDirectory c:\proj\pacakges
3.当您从源代码管理或其他下载获取项目的源代码时,通常会发生这种情况。包通常会从源代码管理或下载中省略,因为它们可以从 nuget.org 等包源中恢复。
4.如果您的项目文件包含包位置的绝对路径,并且您移动了项目,也可能会发生该错误。 如果您移动了项目文件,请直接编辑该文件以更新包引用。
5.在 Visual Studio 中恢复包并允许 NuGet 下载丢失的包。
参考文档: