Nuget - "名称不能以'<'字符

时间:2017-09-09 10:00:39

标签: visual-studio visual-studio-2013 nuget

我有VS 2013更新5.我右键单击一个项目并选择" Manage NuGet Packages"。当我尝试安装" SpecFlow"包我收到消息:

  

"名称不能以'<'字符,十六进制值0x3C,   第10行,第2位。"

enter image description here

如果我使用包管理器控制台

,我会遇到同样的问题

enter image description here

提交给它的任何想法?我该如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

  

提交给它的任何想法?我该如何解决这个问题?

在安装软件包SpecFlow之前,您是否可以成功构建应用程序?似乎web.config或其他具有意外结束标记的文件中可能存在错误

根据输出中的构建日志:

enter image description here

您可以注意到该软件包已成功安装到项目中,但在向Common.Components添加软件包时,NuGet会抛出异常。您可以尝试将此软件包安装到新的创建项目,并检查是否仍然看到问题。

作为测试,我创建了一个新的ASP.NET Web API项目并删除了web.config中的>标记。然后我尝试使用这个格式错误的web.config将NuGet包安装到项目中我收到以下错误:

enter image description here

所以我的建议是仔细检查所有与项目有关系的文件(比如绑定到设置的一些属性,您之前在设计器中设置的资源,项目参考)

注意:许多格式错误的错误能够在不提及任何警告的情况下构建。所以我们还需要手动检查格式错误。

答案 1 :(得分:0)

在本地启动ASP.NET服务器时遇到类似的错误。错误消息指出XML在web.config的特定行中格式不正确,我发疯了自己寻找该文件中的错误。

如果遇到这样的错误,请在web.config中查找导入了另一个文件的节点,例如<appSettings file="PrivateSettings.config">

此语句实际上将在该行插入该文件的内容,并且错误消息将不包含要解析的实际XML。

检查在解析过程中可能注入的其他文件的内容。

答案 2 :(得分:0)

我会分享我的答案,因为我遇到了同样的问题,但解决方案对我来说是不同的。 Rob Bowman 的评论对我来说是一个提示。我在一个本地分支上工作,想切换回 master 分支看一看。当切换分支时,我选择隐藏我的更改。 Visual Studio 在这个过程中搞砸了一些事情。我打开了 web.config 文件,发现里面有一些关于 stash 的奇怪代码。我返回并在第一个分支中提交了我的更改,并解决了任何分支更改/存储问题,然后此错误消失了,无需进行任何手动代码编辑。