在进行 VisualStudio (VS)构建时,如何修复“根元素丢失”?

在进行 VisualStudio (VS)构建时,如何修复“根元素丢失”?

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

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

我们将非常感谢您的任何帮助。 :)

我使用 VS 2008和 Visual Build Pro 6.7。

288076 次浏览

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

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

当 BOM 敲击时,您还会得到‘根元素丢失’:)。字节顺序标记。这是一个额外的字符,当用错误的编码保存文件时,它被添加到文件的开头。
在 VisualStudio 中处理 XML 文件时,有时会出现这种情况。你可以编码一些东西从你所有的文件中删除它,或者如果你知道它是哪个文件,你可以强制 Visual Studio 用一个特定的编码(utf-8或 ascii IIRC)保存它。

如果您在 VS 以外的编辑器中打开该文件(尝试记事本 + +) ,您将在 < ?Xml 声明。

要在 VS 中修复这个问题,请在 VS 中打开文件,然后根据 VS 的版本进行调整

  • 文件 > 高级保存选项 > 选择适当的编码
  • File > Save As > keep the filename,单击 Save 按钮右侧的下拉箭头选择编码

当您编辑某些 Project Toolchain 设置 Atmel Studio 6.1.2730 SP2时,有时会发生此错误。

在我的案例中,我尝试编辑项目属性 > 工具链 > 链接器 > 一般设置与“所有配置”中选择的配置。当我选中或取消选中设置时,弹出一个带有错误的对话框。然而,我发现,如果我一次只对一个构建配置进行编辑,我也可以进行相同的编辑; 也就是说,只选择“ Debug”或“ Release”,而不是“ All Configuration”。

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

在我的例子中,文件 C:\Users\xxx\AppData\Local\PreEmptive Solutions\Dotfuscator Professional Edition\4.0\dfusrprf.xml充满了 NULL。

我删除了它,它是在 Dotfuscator 第一次发射时重建的,在那之后,一切恢复了正常。

我也犯了同样的错误。显示错误。百科。实体无法加载丢失的根元素。当我从 C: Windows Microsoft.NET Framework v4.0.30319中删除该文件并再次打开我的解决方案时,我的问题就解决了。一切正常

在运行 VisualStudio2013时,我使用了蓝屏,当我重新启动时,我打算再次运行我的项目,但是我总是出现这个错误。 无论如何

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

文件夹是

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

内部存在一个文件夹与项目名称 + 一些生成的 GUI ServerHostLoader _ Url _ u2jn0xkgjf1th0a3i2v03ft15vj4x52i

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

在我的例子中,是 xxxxxxxxxx.vcxproj.user 文件导致了这个问题; 在崩溃后它是空白的。我重新命名了它,问题就解决了。

Ho i 通过访问源代码管理浏览器解决了这个问题,并选择了问题项目,右键单击并选择了高级菜单下的“获取特定版本”选项。然后选择 Type as Latest Version 并勾选以下两个复选框并单击 Get 按钮。然后,我刷新了解决方案,我的项目回来了,问题消失了。请注意,这可能会覆盖您的本地项目,因此您当前的更改可能会丢失。因此,如果你没有任何问题与您的本地副本然后你可以尝试这一点。希望能有帮助

您还可以搜索 file。使用 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)
}
}
}

在我的案例中,我得到的是指向 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>

我在一个 Web API 项目中遇到了这个问题。最后发现它在我的“///”方法注释中。我将这些注释设置为自动生成 API 方法的文档。我的评论让它变得疯狂。我删除了所有的回车,特殊字符等。不知道哪件事不好,但是起作用了。

在我的例子中,RDLC 文件使用资源文件(。Resx) ,我有这个错误,因为我没有为我的 rdlc 报告创建相应的 resx 文件。

我的解决方案是这样在 App _ LocalResources 中添加.resx 文件:

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

我有几个 VS2015社区大崩溃。

删除所有. csproj.user 文件

充满了空字符,还有这些

C: Users UserName AppData Local Temp

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

就我而言,我收到了这样一条信息: 看这张照片

我只是在项目文件(. csproj)中注释了下面的代码片段,问题就解决了。

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

在我的例子中,当我打开 .csproj文件时,它是空的,所以我使用 git 进行了前面的提交,并复制了该文件的内容并粘贴了当前的 .csproj文件。之后我删除了 .csproj.user文件,重新加载了我的项目,一切又开始工作了。

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

嘿,我也遇到了同样的问题,Mac 正在开发一个 Cocoa C # 解决方案。 (但我解决了!)

它总是说根元素丢失了,所以它无法加载我的 C # 项目文件。

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

我的解决方案是因为与 VisualStudio 相关的框架要么旧了,要么坏了。 我发现这个问题是因为我尝试用 Cocoa 创建一个新的 Mac 解决方案,结果发现“未能保存解决方案”。然后,我尝试创建一个 Android 解决方案,它运行良好。 进入“ Finder”和“ Go”-> “ Go to a Folder”,然后进入“ Library/Framework”。我已经删除了与 Xamarin 相关的 mono.Framework 和框架,因为我相信这些 Xamarin 框架已经坏了。

然后,卸载 VisualStudio 并重新安装它。 现在一切都好了!

在我的案例中,我升级到了 VS2017,并希望使用我的构建脚本(当我们使用 VS2015时,它一直在使用 MSBuild 3.5)来构建所有使用 MSBuild 4的项目。MSBuild 的升级对于 Windows 桌面应用程序来说看起来不错,但是对于带有紧凑框架的 Windows CE 来说,就会出现这种令人困惑的错误。为 Windows CE 项目恢复到 MSBuild 3.5为我修复了这个问题。

我把 BOM 带来了。顺便说一句,csproj 文件,并删除他们的解决方案中的所有项目,不会建立,但没有帮助。

在我的例子中,由于一个 < strong > 空 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>

在我的案例中,我使用的是2010年与水晶报告。内部异常显示根元素丢失错误。进入类似 C 的目录: Users sam AppData Local dssms dssms.vshost.exe _ Url _ uy5is55gioxym5avqidulehrfjbdsn131.0.0.0,这是在内部消息中给出的,并确保 user.config 是正确的 XML (由于某种原因我的是空白的)。

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

VisualStudio 始终在特定文件夹中有备份项目文件。

请浏览:

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

您应该会看到如下两个文件:

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

并在根项目文件夹中重写。

问题解决了!

我在运行 VS2017时遇到了这个问题,在构建时我得到了‘根元素丢失’的错误。对我来说解决问题的方法是去 工具 > Nuget 软件包管理器 > 软件包管理器设置 > 常规 > 清除所有 Nuget 缓存。这样做之后,我再次运行构建,它被修复了。

删除。正是用户文件为我解决了这个问题。办公室附近的雷击关闭了我的电脑,损坏了我的电脑。用户文件和项目不会加载。我在 Notepad + + 中打开文件,结果发现“ space”是[ NULL ]字符。删除。用户文件和文件加载!

来源 https://forums.asp.net/t/1491251.aspx?Can+t+load+project+because+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文件(或重命名它) ,这样 VisualStudio 将再次创建该文件。为我工作了两次。

在 Xamarin 表格项目。我删除

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

在我的案例中,问题出现在当 Visual Studio 仍然打开时关闭我的 PC,因此结果 csproj.user 文件保存为空。谢天谢地,我已经备份了,所以我只是从 csproj.user 复制了所有的 xml,然后粘贴到受影响的项目 csproj.user 文件中,这样就完美了。

这个文件只包含建筑设备信息和一些更多。

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

就我而言,我完成了工作,关闭了电脑。我无法编译我的项目的第二天。我尝试了其中的一些解决方案,我意识到我所有的项目都不起作用。

为了修复它,我重新安装.net 核心 Framework。

Visual Studio 2017

在我的例子中,我只是将。User 并重新启动可视化工作室并打开项目。它自动创造了另一个。User 文件和解决方案对我来说工作得很好。

在我的案例中,< em > Microsoft. Common. CurrentVersion.target 损坏了。我从其他系统复制了这个文件,它工作了。

对我来说。Csproj 被更改为编码格式。我在 Git (Team Explorer)中撤消了对 csproj 的更改,并重新加载了项目文件。这解决了问题。

我的项目没有加载,并给了我一个 Root Element Missing错误。我刚刚删除了 ****.csproj.user文件并重新加载了它。这个问题就这样解决了

奇怪的是,“ Root 元素丢失”在没有找到 JDK 时也会出现。