如何修复“缺少根元素”。在进行Visual Studio(VS)构建时?
知道我应该在解决方案中查看哪个文件吗?
实际上,使用“ Make VS 2008”命令时,我在“ Visual Build Pro”中收到此错误消息。在构建其他解决方案(例如约20个)时,此命令可以正常工作,我不确定为什么我会得到该错误。
任何帮助将不胜感激。:)
我正在使用VS 2008和Visual Build Pro 6.7。
Answers:
确保任何XML文件(或任何被Visual Studio解释为XML文件的文件)都具有正确的XML结构-即一个根元素(rootElement
在我的示例中已使用过任何名称):
<?xml version="1.0"?>
<rootElement>
...
</rootElement>
当BOM到达:)时,您还将得到“缺少根元素”。BOM =字节顺序标记。这是一个多余的字符,当使用错误的编码保存文件时,该字符会添加到文件的开头。
有时在使用XML文件的Visual Studio中会发生这种情况。您可以编码某些东西以将其从所有文件中删除,或者如果您知道它是哪个文件,则可以强制Visual Studio使用特定的编码(utf-8或ascii IIRC)进行保存。
如果您在VS以外的编辑器中打开文件(请尝试记事本++),则在<?之前会看到两个有趣的字符。xml声明。
要在VS中解决此问题,请在VS中打开文件,然后根据VS的版本
就我而言。我正在丢失指向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>
此错误是由损坏的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
并在根项目文件夹中覆盖。
问题解决了!
我在运行VS 2017时遇到这个问题,在构建时出现了``根元素丢失''的错误。为我解决了什么,是去工具> Nuget软件包管理器>软件包管理器设置>常规>清除所有Nuget缓存。完成此操作后,我再次运行了构建,并进行了修复。
MSVS 2019
对于dotnet核心项目,我也有同样的问题。您的解决方案解决了该问题。
我有同样的错误。显示错误Microsoft.Data.Entity无法加载缺少的根元素。当我从C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319删除该文件并再次打开我的解决方案时,我的问题已解决。一切正常
您也可以搜索文件。使用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)
}
}
}
当您编辑某些项目工具链设置Atmel Studio 6.1.2730 SP2时,有时会发生此错误。
就我而言,我尝试在“配置”中选择“所有配置”来编辑“项目属性”>“工具链”>“链接器”>“常规设置”。当我检查或取消检查设置时,会弹出一个带有错误的对话框。但是,我发现如果一次只对一个构建配置进行相同的编辑,则可以进行相同的编辑。即仅选择“调试”或“发布”,而不选择“所有配置”。
有趣的是,即使选择了“所有配置”,我后来也可以编辑相同的链接器设置。我不知道我的项目中发生了什么变化,才使得这一切成为可能。
我在运行Visual Studio 2013时遇到了蓝屏,当我重新启动时,我打算再次运行我的项目,但是我总是遇到这个难题。无论如何
使用Temp信息删除文件夹可解决此问题。在我的情况下,该项目是Windows Server,基本上,它会创建一个包含一些Tem信息的文件夹。
该文件夹是
C:\Users\User_NAME\AppData\Local\NAme_OF_THeProject
内部存在一个具有项目名称的文件夹+一些生成的GUI服务。ServerHostLoader_Url_u2jn0xkgjf1th0a3i2v03ft15vj4x52i
这是我删除的文件夹,现在我可以再次运行该项目。
以我为例,我收到了如下消息: 查看此图片
我只是在项目文件(.csproj)中注释了下面的代码,问题已解决。
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
在我的情况下,尝试发布应用程序时未加载xxxx.pubxml.user。我删除了文件,然后重新启动Visual Studio,然后创建了一个新的配置文件来发布它,问题已解决并成功发布。
嗨,我在Mac上使用Cocoa C#解决方案时遇到了同样的问题。 (但是我解决了!)
它总是说根元素丢失了,因此它无法加载我的C#项目文件。
我有2017 Visual Studio Mac社区版。几个小时后,我终于设法找到了解决方案(非常痛苦!)。
我的解决方案是因为与Visual Studio相关的框架过旧或损坏。我找到这个是因为我试图通过Cocoa创建一个新的Mac解决方案,并且说“无法保存该解决方案”。然后,我尝试创建一个Android解决方案,并且运行良好。转到“查找器”和“转到”->“转到文件夹”,然后转到“库/框架”。我删除了与Xamarin相关的mono.framework和框架,因为我相信这些Xamarin框架已损坏。
然后,卸载Visual Studio并重新安装它。现在一切正常!
就我而言,由于文件为空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>
删除.user文件正是我解决此问题的原因。办公室附近的雷击关闭了我的电脑,损坏了.user文件,因此无法加载项目。我在Notepad ++中打开了文件,结果“空格”为[NULL]字符。删除.user文件并加载文件!
来源https://forums.asp.net/t/1491251.aspx?Can+t+load+project+因为+ root + element + is + missing +
我在Xamarin Forms项目中遇到了同样的问题。iOS项目不可用,我无法重新加载该项目。我一直在寻找不需要卸载任何内容的解决方案。
我从这个博客得到的答案: https //dev.to/codeprototype/xamarin-form-application-failed-to-load-android-project-root-element-missing--27o0
因此,无需卸载任何内容,就可以删除 .csproj.user文件(或重命名),以便Visual Studio再次创建该文件。为我工作了两次。