ASP.NET - 在 VS 2017 中浏览 Nuget 包时出现“根级别的数据无效”错误

Posted

技术标签:

【中文标题】ASP.NET - 在 VS 2017 中浏览 Nuget 包时出现“根级别的数据无效”错误【英文标题】:ASP.NET - "Data at the root level is invalid" error while browsing Nuget Packages in VS 2017 【发布时间】:2018-06-12 16:33:39 【问题描述】:

我正在尝试创建一个 .NET Web API 应用程序并使用 Nuget 包管理器安装 EntityFramework。

但是当我要:右键单击项目引用>管理 Nuget 包>浏览我在列表中找不到 Microsoft.EntityFrameworkCore。 p>

然后我在底部的输出部分显示此错误:

[nuget.org] Data at the root level is invalid. Line 1, position 1.

我使用 VS 2017 15.5.2.Net Framework 4.7.02556

我在使用 dotnet cli 命令时也遇到此错误 dotnet add package Microsoft.EntityFrameworkCore

error: The content at 'https://api.nuget.org/v3/index.json/FindPackagesById()?id='Microsoft.EntityFrameworkCore'' is not valid XML. error: Data at the root level is invalid. Line 1, position 1.

看起来 dotnet cli 正在尝试将远程 index.json 文件加载为 XML 文件。

供您参考,dotnet --version 显示为2.1.3

有什么想法吗?

【问题讨论】:

【参考方案1】:

ASP.NET - 在 VS 2017 中浏览 Nuget 包时出现“根级别的数据无效”错误

根据错误日志,

根级别的数据无效。第 1 行,位置 1。

您的项目中似乎存在 XML 格式错误,例如 web.configNuGet.Config(Path:%appdata%\NuGet)。所以请检查你的xml文件是否有任何异常,删除<?xml version="1.0" encoding="utf-8"?>之前的所有内容。

如果你的项目还是没有发现异常,请新建一个空白项目,不做任何修改,然后右键Project References > Manage Nuget Packages > Browse,找到包Microsoft.EntityFrameworkCore

作为测试,我创建了一个 .NET Web API 应用程序项目,将 web.config 文件中的第一行更改为:

`<?xml version="1.0" encoding="utf-8"?>`

收件人:

zzxml version="1.0" encoding="utf-8"?>

然后打开包管理器控制台,用命令行安装一些包,我会得到那个错误:

【讨论】:

感谢您的回答。我打开了“%appdata%\Roaming\NuGet\NuGet.Config”。该文件以: 开头,但我不断收到此错误。即使我重命名 NugGet.Config 文件,我仍然显示错误。还有其他xml文件要检查吗? @JeremieP,web.config 文件怎么样?您是否尝试过不做任何修改地创建一个新项目? 我创建了一个空的 ASP.NET 项目。 web.config 以 开头,我没有发现任何语法错误,但我一直收到此错误。 @JeremieP,这个问题是否仍然存在,如果你新建一个项目不做任何修改,创建后,右键单击项目引用>管理Nuget包>直接浏览? 刚刚创建了一个.NET Web API项目(没有任何修改),我点击了项目引用>管理Nuget包>浏览,但错误显示:“根级别的数据无效。行1,位置 1。”看起来错误来自包源“nuget.org”,因为当我选择另一个源时,我没有收到此错误。【参考方案2】:

错误似乎来自 %appdata%/Roaming/NuGet/NuGet.Config 文件 此文件中没有语法错误,但我只是删除了它并重新打开了 VS 2017,它创建了另一个 NuGet.Config ,其数据少于删除的数据。 然后错误消失了。

【讨论】:

【参考方案3】:

我刚刚删除了文件 c:\Usersusername\AppData\Roaming\NuGet\NuGet.Config 并且 Visual Studio 2015 再次使用 nuget.org。

【讨论】:

【参考方案4】:

我以前见过这种情况,当隐藏字符进入文件时。用bitbucket在线编辑器编辑这个文件,你能看到红点吗?这些表示一些不可打印的字符,这将导致上述相同的错误,损坏的 nuget.config

【讨论】:

【参考方案5】:

我的包源中有一个尾随分号。删除它,然后重新启动 Visual Studio 解决了这个问题。我在与*.sln 相同的文件夹中定义了一个自定义NuGet.Config 文件,但这也会导致您的%appdata%/NuGet/NuGet.Config 路径出现问题。

【讨论】:

感谢您的回答。我的解决方案特定的 nuget 配置文件有一个尾随“。”在 nuget URL 之后并删除“。”为我解决了这个问题。【参考方案6】:

使用 VS 2019,我的解决方案是清除所有 NuGet 缓存

这可以通过选项 -> NuGet 包管理器 -> 常规 -> 清除所有 NuGet 缓存来实现。

【讨论】:

解决了我的 VS 2019 问题。 这也对我有用。一样,VS2019【参考方案7】:

在我的情况下,我遵循以下步骤:

    使用 Visual Studio 安装程序应用修复 Visual Studio 2019。

    使用工具 ==> 选项 ==> Nugate 包清除所有 nugate 现金 经理 ==> 常规 ==> 清除所有 NuGage 缓存。

    清理解决方案并构建解决方案。

【讨论】:

【参考方案8】:

以下帮助我解决了这个问题。

    使用 Visual Studio 工具清除所有 nugate 缓存 ==> 选项 ==> Nuget 包管理器 ==> 常规 ==> 清除所有 NuGet 缓存。 关闭 Visual Studio。 在 .sln 文件所在的 VS 命令提示符中转到我的项目(即 C:\Projects\Project1) 执行以下命令恢复所有 nuget 包: msbuild -t:restore 在 Visual Studio 中打开项目并从 VS 重建 SOLUTION。

【讨论】:

以上是关于ASP.NET - 在 VS 2017 中浏览 Nuget 包时出现“根级别的数据无效”错误的主要内容,如果未能解决你的问题,请参考以下文章

vs2005不能调试ASP.NET程序

ASP.Net Core:在VS2017中搭建React.js + webpack + babel

VS 2017,让您调试 ASP.NET C# 项目的发布版本

如何使用 VS 2017 在 asp .net 解决方案中使用 vue-multiselect 标记?

在 VS 2017 中针对完整的 .net 框架 asp.net 核心项目运行 XUnit 2.2.0 单元测试时出现 System.BadImageFormatException

使用VS2008调试ASP.net网站项目 浏览器一直在连接中 无法打开