如何修复“缺少根元素”。什么时候做Visual Studio(VS)Build?

时间:2010-09-22 18:29:40

标签: visual-studio-2010 visual-studio visual-studio-2008 visual-build-professional

如何修复“缺少根元素”。在进行Visual Studio(VS)构建时?

知道我应该在我的解决方案中查看哪个文件?

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

非常感谢任何帮助。 :)

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

31 个答案:

答案 0 :(得分:40)

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

答案 1 :(得分:32)

当BOM发生时,你也会得到'缺少根元素':)。 BOM =字节顺序标记。这是一个额外的字符,当用错误的编码保存时,它会被添加到文件的开头 在处理XML文件时,有时在Visual Studio中会发生这种情况。您可以编写某些内容以将其从所有文件中删除,或者如果您知道它是哪个文件,则可以强制Visual Studio使用特定编码(utf-8或ascii IIRC)进行保存。

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

要在VS中修复此问题,请在VS中打开文件,然后根据VS的版本

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

答案 2 :(得分:30)

确保任何XML文件(或由visual studio解释为XML文件的任何文件)都具有正确的XML结构 - 即一个根元素(具有任何名称,我使用rootElement我的例子):

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

答案 3 :(得分:14)

在我的情况下。我得到缺少元素错误指向NuGet.Config文件。 那时它看起来像是这样的事情

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

然后我添加了实际包装整个xml的configuration标记。现在我的工作正常

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

答案 4 :(得分:4)

在我的情况下,当我打开develop文件时,它是空的,所以我转到我之前的git提交并复制了该文件的内容并将其粘贴到我当前的let x = x+3 in fst (snd (x+1,(5,x-2))) 文件中。之后我删除了.csproj文件,重新加载了我的项目,一切都重新开始了。

答案 5 :(得分:4)

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

答案 6 :(得分:3)

您也可以搜索该文件。使用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)
            }
        }
}

答案 7 :(得分:3)

就我而言,文件C:\Users\xxx\AppData\Local\PreEmptive Solutions\Dotfuscator Professional Edition\4.0\dfusrprf.xml充满了NULL。

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

答案 8 :(得分:3)

此错误是由损坏的proj文件引起的。

Visual Studio始终在特定文件夹中具有备份项目文件。

请浏览至:

C:\Users\<Your user>\Documents\Visual Studio <Vs version>\Backup Files\<your project>

你应该看到2个这样的文件:

Original-May-18-2018-1209PM.<your project>.csproj
Recovered-May-18-2018-1209PM.<your project>.csproj

您只需要复制文件:

Original-May-18-2018-1209PM.<your project>.csproj

并重新命名为

<your project>.csproj 

并覆盖根项目文件夹。

问题解决了!

答案 9 :(得分:2)

我的项目未加载,并给了我一个Root Element Missing错误。我刚刚删除了****.csproj.user文件,然后重新加载了它。通过这种方式解决了问题

答案 10 :(得分:2)

我在运行Visual Studio 2013时有蓝屏,当我重新启动时我打算再次运行我的项目,但我总是有这个headius错误。 无论如何

使用临时信息删除文件夹修复此问题。 在我的情况下,Project是一个Windows Server,基本上它创建一个带有一些Tem信息的文件夹。

文件夹是

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

内部存在一个带有项目名称的文件夹+一些生成的GUI Service.ServerHostLoader_Url_u2jn0xkgjf1th0a3i2v03ft15vj4x52i

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

答案 11 :(得分:2)

在我的情况下,.csproj更改为编码格式。我在Git(团队资源管理器)中撤消了对csproj的更改,并重新加载了项目文件。这样就解决了问题。

答案 12 :(得分:2)

编辑某些项目工具链设置Atmel Studio 6.1.2730 SP2时,有时会发生此错误。

在我的情况下,我尝试编辑项目属性&gt;工具链&gt;链接器&gt;在配置中选择了“所有配置”的常规设置。当我选中或取消选中某个设置时,会弹出一个包含错误的对话框。但是,我发现如果我一次只将它们设置为一个构建配置,我可以进行相同的编辑;即只选择“调试”或“释放”而不是“所有配置”。

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

答案 13 :(得分:1)

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

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

答案 14 :(得分:1)

我在运行VS 2017时遇到了这个问题,在构建时我遇到了“根元素丢失”的错误。为我解决的是转到工具> Nuget程序包管理器>程序包管理器设置>常规>清除所有Nuget缓存。完成此操作后,我再次运行了构建,并进行了修复。

答案 15 :(得分:0)

就我而言,我收到了这样的消息: See this picture

我刚刚在项目文件(.csproj)中评论了下面的剪切代码,问题已解决。

{{1}}

答案 16 :(得分:0)

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

答案 17 :(得分:0)

这比我想象的容易修复。我所做的就是清除网站缓存文件夹。

删除所有内容

操作系统驱动器:\ Users \ USER NAME \ AppData \ Local \ Microsoft \ WebsiteCache

例如

C:\用户\杰克\应用程序数据\本地\微软\ WebsiteCache

有关更多视觉工作室提示,请访问My Blog

答案 18 :(得分:0)

在我的情况下, Microsoft.Common.CurrentVersion.targets 已损坏。我从其他系统复制了此文件,并且可以正常工作。

答案 19 :(得分:0)

就我而言,我只是重命名了.csproj.user并重新启动Visual Studio并打开了项目。它会自动创建另一个.csproj.user文件,该解决方案对我来说效果很好。

答案 20 :(得分:0)

这些解决方案中没有一个解决我的问题。

就我而言,我完成工作并关闭计算机。第二天,我无法编译我的项目。我尝试了其中一些解决方案,但我意识到我所有的项目都无法正常工作。

要修复此问题,请重新安装.net core Framework。

Visual Studio 2017

答案 21 :(得分:0)

在我的情况下,问题是由于在Visual Studio保持打开状态时关闭了我的电脑而导致的,因此csproj.user文件保存为空。值得庆幸的是,我已经备份了,所以我只是从csproj.user复制了所有xml,然后粘贴到了受影响的项目csproj.user文件中,因此效果很好。

此文件仅包含建筑物设备信息等。

答案 22 :(得分:0)

在xamarin表单项目中。我删除了

.VS Project folder.
ProjectName.Android.csProj.User
ProjectName.Android.csProj.bak

答案 23 :(得分:0)

我在Xamarin Forms项目中遇到了同样的问题。 iOS项目不可用,我无法重新加载该项目。我一直在寻找不需要卸载任何内容的解决方案。

我从此博客获得的答案: https://dev.to/codeprototype/xamarin-form-application-failed-to-load-android-project-root-element-missing--27o0

因此,无需卸载任何内容,您可以删除 .csproj.user 文件(或重命名),以便Visual Studio再次创建该文件。为我工作了两次。

答案 24 :(得分:0)

我在Web API项目中遇到了这个问题。终于发现它是在我的“///”方法评论中。我将这些注释设置为自动生成API方法的文档。我的评论中有些东西让它变得疯狂。我删除了所有回车,特殊字符等。不确定它不喜欢哪种东西,但它有效。

答案 25 :(得分:0)

在我的情况下,我使用vs 2010与水晶报告。 Innerexception显示根元素缺失错误。转到目录C:\ Users \ sam \ AppData \ Local \ dssms \ dssms.vshost.exe_Url_uy5is55gioxym5avqidulehrfjbdsn13 \ 1.0.0.0,这是在innermessage中给出的,并确保user.config是正确的XML(由于某种原因我的是空白)。

答案 26 :(得分:0)

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

它始终表示缺少根元素,因此无法加载我的C#项目文件。

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

我的解决方案是因为与Visual Studio相关的框架已经过时或已损坏。 我发现这是因为我试图通过Cocoa创建一个新的Mac解决方案,它说&#34;未能保存解决方案&#34;。然后,我尝试创建一个Android解决方案,它运行正常。 转到你的&#34; Finder&#34;和&#34; Go&#34; - &GT; &#34;转到文件夹&#34;然后转到&#34;图书馆/框架&#34;。我删除了与Xamarin相关的mono.framework和框架,因为我相信这些Xamarin框架已被破坏。

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

答案 27 :(得分:0)

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

答案 28 :(得分:0)

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

我的解决方案是以这种方式在App_LocalResources中添加文件.resx:

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

答案 29 :(得分:0)

我有一些大规模的VS2015社区崩溃。

  

删除所有.csproj.user文件

其中包含空字符,还有这些

  

C:\ Users \用户名\应用程序数据\本地\ TEMP \

     

.NETFramework,版本= v4.0.AssemblyAttributes.cs   .NETFramework,版本= v4.5.AssemblyAttributes.cs   .NETFramework,版本= v4.5.2.AssemblyAttributes.cs

答案 30 :(得分:-1)

删除.user文件正是为我解决问题的原因。办公室附近的雷击关闭了我的电脑,损坏了.user文件,因此无法加载项目。我在Notepad ++中打开了文件,结果“空格”为[NULL]字符。删除.user文件并加载文件!

来源https://forums.asp.net/t/1491251.aspx?Can+t+load+project+because+root+element+is+missing+