42

如何解决“根元素丢失”。当做一个Visual Studio(VS)生成?如何修复“根元素丢失”。当做一个Visual Studio(VS)生成?

任何想法我应该看看我的解决方案中的文件?

实际上,当使用“Make VS 2008”命令时,我在“Visual Build Pro”中看到这个错误信息。这个命令在构建其他解决方案(比如大约20个)时工作得很好,而且我不确定为什么我会得到错误。

任何帮助将非常感激。 :)

我正在使用VS 2008和Visual Build Pro 6.7。

回答

26

确保任何XML文件(或任何可被Visual Studio解释为XML文件的文件)都具有正确的XML结构 - 即一个根元素(具有任何名称,我在本例中使用了rootElement) :

<?xml version="1.0"?> 
<rootElement> 
... 
</rootElement> 
+0

还有像成千上万的文件,在我的解决方案。有什么特别的扩展可以看? – 2010-09-22 18:57:41

+2

@Gerhard Weiss - .xml,.config,.xsd,.xsl会是一个好的开始。如果你有任何XHTML文件,它们也是很好的候选者。我不知道你的项目和你有什么样的文件,所以我不能告诉你。但是,请查看错误窗口中的错误 - 它应该告诉您哪个文件导致了问题。 – Oded 2010-09-22 19:09:15

+0

简单工作,但不得不使用Kahlil的答案。 – 2017-02-14 17:43:15

26

当物料清单发生碰撞时,您还会收到'根元素缺失':)。 BOM =字节顺序标记。这是一个额外的字符,当它以错误的编码保存时,会被添加到文件的开头。
使用XML文件时,有时会在Visual Studio中发生这种情况。您可以编写代码将其从所有文件中删除,或者如果您知道它是哪个文件,则可以强制visual studio使用特定编码(utf-8或ascii IIRC)保存它。

如果在VS以外的编辑器中打开该文件(尝试使用记事本++),您会在<之前看到两个有趣的字符? xml声明。

要在VS解决这个问题,打开VS文件,然后根据不同的型号VS

  • 文件>高级保存选项>选择适当的编码
  • 文件>另存为>保存文件名,请单击保存按钮右侧的下拉箭头以选择编码
+0

谢谢你救了我的一天:) – 2014-04-17 06:19:23

2

当您编辑某些项目工具链设置Atmel Studio 6.1.2730 SP2时,有时会出现此错误。

在我的情况下,我尝试在配置中选择“所有配置”来编辑项目属性>工具链>链接器>常规设置。当我选中或取消选中一个设置时,会弹出一个对话框。但是,如果我一次只编译一个构建配置,我发现可以进行相同的编辑;即只选择'Debug'或'Release'而不是'All Configurations'。

有趣的是,即使选择了“所有配置”,我以后也能编辑相同的链接器设置。我不知道我的项目中发生了什么变化,使得这一切成为可能。

+0

刚刚在为“所有配置”添加C#定义时遇到同样的问题。似乎AtmelStudio对于所有配置都无法达到此目的,即使在包含相同定义的调试/发布时也是如此。 – hfrmobile 2014-02-19 09:26:06

2

在我的情况下,文件C:\Users\xxx\AppData\Local\PreEmptive Solutions\Dotfuscator Professional Edition\4.0\dfusrprf.xml已满NULL。

我删除了它;它是在第一次启动Dotfuscator时重新创建的,之后恢复正常。

+0

修正了相同的..跟着文件没有找到删除他和新文件自动创建。 – Dimo 2016-08-15 10:54:58

3

我得到了同样的错误。显示错误Microsoft.Data.Entity无法加载根元素缺失。当我从C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319中删除该文件并再次打开我的解决方案时,我的问题已解决。一切都很好

2

我在运行Visual Studio 2013时出现了蓝屏,当我重新启动时我打算再次运行我的项目,但我总是这个头像错误。 反正

使用温度信息删除文件夹修复此问题。 在我的情况下,该项目是一个Windows服务器,基本上它创建一个文件夹与一些TEM信息。

的文件夹是

C:\Users\User_NAME\AppData\Local\NAme_OF_THeProject 

内部存在的文件夹与Project +一些生成的GUI Service.ServerHostLoader_Url_u2jn0xkgjf1th0a3i2v03ft15vj4x52i

的名称,这是我删除的文件夹,现在我可以再次运行该项目。

20

在我的情况下,它是xxxxxxxxxxxx.vcxproj.user文件在崩溃后导致问题(它是空白的)。我重命名了它,问题就消失了。

+5

删除了我的'.user'文件,它再次运行..在SVN更新后也是空白 – TryingToImprove 2015-10-30 13:49:18

+4

在我的情况下,当我的机器崩溃时,我正在运行VS 2015 - Community Edition。当我试图打开我的解决方案时,该项目将无法加载并抛出“缺失根元素”错误。删除项目的.user文件以允许项目再次加载。 – Garry 2016-01-02 13:41:57

+0

谢谢艾略特,恒星简单的小费.. – 2016-11-29 17:44:54

0

何我简单地解决了这个问题,去源控制资源管理器,并选择问题项目,右键单击并选择高级菜单下的获取特定版本选项。然后选择“Type”作为最新版本,并勾选两个复选框并单击Get按钮。然后我刷新了解决方案,我的项目回到生活和问题消失了。请注意,这可能会覆盖您的本地项目,因此您当前的更改可能会丢失。所以如果你没有任何问题与你的本地副本,那么你可以试试这个。希望它有帮助

2

您也可以搜索该文件。导航到使用PowerShell项目目录,并运行Get-FileMissingRoot:

function Get-FileMissingRoot { 

    dir -recurse | 
     where { 
      ($_ -is [IO.FileInfo]) -and 
      (@(".xml", ".config") -contains $_.extension) 
     } | 
     foreach { 
      $xml = New-Object Xml.XmlDocument; 
      $filename = $_.FullName 
      try { 
       $xml.Load($filename) 
      } 
      catch { 
       write ("File: " + $filename) 
       write ($_.Exception.Message) 
      } 
     } 
} 
+0

救世主!感谢:) – lusocoding 2017-01-27 08:13:20

-2

有这个问题,登录到一个RDP在旧服务器VM源泉的时间(时钟)是集2小时的休息时间。 (和错误的时区)在主机系统上。纠正,一切都很好。 KISS理论.. :)

0

这很容易解决比我想象的。我所做的只是清除网站缓存文件夹。

从操作系统

DRIVE LETTER删除一切:\用户\用户名\应用程序数据\本地\微软\ WebsiteCache

例如

C:\用户\千斤顶\应用程序数据\本地\微软\ WebsiteCache

更多的Visual Studio提示请访问My Blog

11

在我case.I是越来越缺少元素错误指向NuGet.Config文件。 当时它正在寻找一些这样的事

<?xml version="1.0" encoding="utf-8"?> 
<settings> 
    <repositoryPath>Packages</repositoryPath> 
</settings> 

然后我就加入configuration标签,其实包装整个XML。现在工作正常

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <settings> 
    <repositoryPath>Packages</repositoryPath> 
    </settings> 
</configuration> 
+1

谢谢!当我从VS 2013升级到VS 2017时,我收到了OP的错误,添加了“配置”根节点修复了它。 – 2017-08-03 16:04:17

+0

这就解决了我的问题! – 2018-01-19 04:10:21

0

我在Web API项目上得到了这个问题。最后发现它出现在我的“///”方法评论中。我将这些注释设置为自动生成API方法的文档。我评论中的某些内容使它变得疯狂。我删除了所有的回车符,特殊字符等。不太确定它不喜欢哪种东西,但它工作。

0

在我的情况下,RDLC文件使用资源文件(.resx),我有这个错误,因为我没有为我的rdlc报告创建通讯员resx文件。

我的解决办法是添加文件的.resx App_LocalResources文件里面是这样的:

\rep 
\rep\myreport.rdlc 
\rep\App_LocalResources\myreport.rdlc.resx 
0

我有几个巨大的VS2015社区崩溃。

删除所有.csproj.user文件

其中充满了空字符,以及这些

C:\ Users \用户名\ AppData \本地的\ Temp \

.NETFramework,Version = v4.0.AssemblyAttributes.cs .NETFramework,Version = v4.5.AssemblyAttributes.cs .NETFramework,Version = v4.5.2.AssemblyAttributes.cs

0

在我来说,我得到的信息是这样的: See this picture

我只是评论了剪断下面的代码在项目文件(.csproj)和问题得到了解决。

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> 
0

在我而言,当我打开.csproj文件,里面是空的,所以我去了我以前犯Git和复制的文件的内容并粘贴它我目前.csproj文件。之后,我删除了.csproj.user文件,重新加载了我的项目,并且所有事情都再次开始工作。

0

在我的情况下,当试图发布应用程序时未加载xxxx.pubxml.user。我删除了该文件并重新启动了Visual Studio,然后创建了一个新的配置文件发布它,问题得到解决并成功发布。

-1

嗨,我在Mac上使用Cocoa C#解决方案时遇到同样的问题。 (但我解决它!)

它总是说,缺少根元素,因此它不能加载我的C#项目文件。

我有2017 Visual Studio Mac社区版。 几个小时后我终于找到了解决方案(痛苦!)。

我的解决方案是因为与Visual Studio相关的框架已旧或已损坏。 我发现这是因为我试图通过Cocoa创建一个新的Mac解决方案,它说“未能保存解决方案”。然后,我试图创建一个Android解决方案,它工作正常。 转到“Finder”和“Go” - >“转到文件夹”,然后转到“库/框架”。我已经删除了与Xamarin相关的mono.framework和框架,因为我相信这些Xamarin框架已经损坏。

然后,卸载Visual Studio并重新安装它。 现在一切正常!

0

在我的情况下,我升级到VS2017,并希望用我的构建脚本(当我们使用VS2015时使用MSBuild 3.5)构建所有带有MSBuild 4的项目。对于Windows桌面应用程序来说,MSBuild升级显得很好,但对于使用紧凑框架的Windows CE来说,这会给我这个令人困惑的错误。回到MSBuild 3.5 for Windows CE项目解决了我的问题。

顺便说一下,我确实在.csproj文件中有BOM,并且在解决方案中的所有项目中删除了它们,但是这些解决方案无法生成但没有帮助。

0

在我的情况下,我得到了这个错误,因为为空的packages.config文件。 这导致NUGET包管理器失败并显示错误根元素丢失。 解决方案是复制另一个非空文件中的元素,然后根据需要进行更改。

例(packages.config):

<?xml version="1.0" encoding="utf-8"?> 
<packages> 
<package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net451"/> 
<package id="Newtonsoft.Json" version="5.0.4" targetFramework="net451"/> 
</packages>