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.config
或 NuGet.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 包时出现“根级别的数据无效”错误的主要内容,如果未能解决你的问题,请参考以下文章
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