it-roy-ru.com

Как исправить "Корневой элемент отсутствует". при сборке Visual Studio (VS)?

Как исправить «Корневой элемент отсутствует». при сборке Visual Studio (VS)?

Любая идея, какой файл я должен посмотреть в моем решении?

На самом деле, я получаю это сообщение об ошибке внутри "Visual Build Pro" при использовании команды "Make VS 2008". Эта команда прекрасно работает при построении других решений (например, около 20), и я не совсем уверен, почему мое получает ошибку. 

Любая помощь будет очень высоко ценится. :) 

Я использую VS 2008 и Visual Build Pro 6.7.

53
Gerhard Weiss

Убедитесь, что любой XML-файл (или любой файл, который будет интерпретирован Visual Studio как XML-файл) имеет правильную XML-структуру, то есть один корневой элемент (с любым именем, в моем примере я использую rootElement):

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

В моем случае это был файл xxxxxxxxxxxx.vcxproj.user, который вызывал проблему (он был пустым) после сбоя. Я переименовал его, и проблема ушла.

36
Elliot

Вы также получите «корневой элемент отсутствует», когда ударяет спецификация :). BOM = метка порядка байтов. Это дополнительный символ, который добавляется в начало файла, когда он сохраняется с неправильной кодировкой.
Это может происходить иногда в Visual Studio при работе с файлами XML. Вы можете либо кодировать что-то, чтобы удалить это из всех ваших файлов, либо, если вы знаете, какой это файл, вы можете заставить Visual Studio сохранить его с определенной кодировкой (utf-8 или ascii IIRC). 

Если вы откроете файл в редакторе, отличном от VS (попробуйте notepad ++), перед <? Вы увидите два забавных символа. XML декларация.

Чтобы исправить это в VS, откройте файл в VS и затем в зависимости от версии VS

  • Файл> Дополнительные параметры сохранения> выберите подходящую кодировку
  • Файл> Сохранить как> сохранить имя файла, нажмите стрелку раскрывающегося списка справа от кнопки сохранения, чтобы выбрать кодировку
31
stombeur

В моем случае. Я получаю ошибка отсутствующего элемента указывает на файл 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>
13
Malik Khalil

В моем случае, когда я открыл файл .csproj, он был пустым, поэтому я пошел на свой предыдущий коммит в git, скопировал содержимое этого файла и вставил в него мой текущий файл .csproj. После чего я удалил файл .csproj.user, перезагрузил свой проект, и все снова заработало.

4
Alf Moh

Я получил ту же ошибку. показывая ошибку Microsoft.Data.Entity не удалось загрузить корневой элемент отсутствует. Когда я удалил этот файл из C:\Windows\Microsoft.NET\Framework\v4.0.30319 и снова открыл свое решение, моя проблема была решена. Все отлично работает

4
user4481951

Вы также можете искать файл. Перейдите в каталог проекта с помощью 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)
            }
        }
}
3
Sam Porch

В моем случае файл C:\Users\xxx\AppData\Local\PreEmptive Solutions\Dotfuscator Professional Edition\4.0\dfusrprf.xml был полон NULL.

Я удалил это; он был воссоздан при первом запуске Dotfuscator, и после этого нормальность была восстановлена.

3
pascal

У меня был синий экран во время работы Visual Studio 2013, когда я перезапускал, я намеревался снова запустить свой проект, но у меня всегда была эта ошибка Ошибка . В любом случае 

Удаление папок с информацией о Temp. Исправьте эту проблему . В моем случае Project был Windows Server, и в основном он создает папку с некоторой информацией Tem.

папка была

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

внутри Существующей папки с именем проекта + некоторый сгенерированный графический интерфейс Service.ServerHostLoader_Url_u2jn0xkgjf1th0a3i2v03ft15vj4x52i

это папка, которую я удалил, и теперь я могу снова запустить проект.

2
Ramomex1

Эта ошибка может иногда возникать при редактировании некоторых настроек Project Toolchain Atmel Studio 6.1.2730 SP2.

В моем случае я попытался отредактировать Свойства проекта> Связка инструментов> Компоновщик> Общие настройки, выбрав «Все конфигурации» в Конфигурации. Когда я проверил или снял флажок настройки, всплыло диалоговое окно с ошибкой. Однако я обнаружил, что могу вносить те же правки, если я делаю их только для одной конфигурации сборки одновременно; то есть, вместо «Все конфигурации» выбраны только «Отладка» или «Выпуск».

Интересно, что позже я смог отредактировать те же настройки компоновщика, даже когда был выбран «Все конфигурации». Я не знаю, что изменилось в моем проекте, что сделало это возможным.

2
ptschnack

У меня была такая же проблема в проекте Xamarin Forms. iOS-проект был недоступен, и я не смог перезагрузить его. Я искал решение, которое не нужно ничего удалять. 

Ответ, который я получил из этого блога: https://dev.to/codeprototype/xamarin-form-application-failed-to-load-Android-project-root-element-missing--27o0

Поэтому, не удаляя ничего, вы можете удалить} _ .csproj.user (или переименовать его), чтобы Visual Studio снова создал файл. Работал на меня дважды.

1
Tharindu

Эта ошибка вызвана повреждением файла Proj. Visual Studio всегда имеет резервный файл проекта в определенной папке . Просьба перейти к: C:\Users \\ Documents\Visual Studio\Backup Files\ Вы можете видеть 2 файла, таких же как : Оригинал-May-18-2018-1209PM..csproj Взято-May-18-2018-1209PM..csproj

Вам нужно только скопировать файл: Original-May-18-2018-1209PM..csproj И переименовать в .csproj & overide в корневой папке проекта . Проблема решена!

1
user3037124

В моем случае я обновился до VS2017 и хотел собрать все проекты с MSBuild 4 с помощью моего скрипта сборки (который использовал MSBuild 3.5, когда мы использовали VS2015). То, что обновление MSBuild выглядело хорошо для настольных приложений Windows, но для Windows CE с компактным фреймворком дало бы мне эту запутанную ошибку. Возврат к MSBuild 3.5 для проектов Windows CE исправил проблему для меня.

Кстати, у меня была спецификация в файлах .csproj, и я удалил их для всех проектов в решении, которое не будет создано, но это не поможет.

1
Martin Maat

У меня была эта проблема при запуске VS 2017, при сборке я получал сообщение об ошибке «отсутствует корневой элемент». То, что решило это для меня, собиралось Инструменты> Диспетчер пакетов Nuget> Настройки диспетчера пакетов> Общие> Очистить все кеши Nuget . После этого я снова запустил сборку, и она была исправлена. 

1
Shawn Hill

В форме проекта xamarin. я удалил 

.VS Project folder.
ProjectName.Android.csProj.User
ProjectName.Android.csProj.bak
0
A.Goutam

В моем случае я использовал против 2010 с Crystal Report. Не исключение выявило, что в корневом элементе отсутствует ошибка. Перейдите в каталог, например, C:\Users\sam\AppData\Local\dssms\dssms.vshost.exe_Url_uy5is55gioxym5avqidulehrfjbdsn13\1.0.0.0, который указан во внутреннем сообщении, и убедитесь, что user.config - это правильный XML (мой файл по какой-то причине пуст).

0
Nie Selam

В моем случае xxxx.pubxml.user не был загружен при попытке опубликовать приложение. Я удалил файл и перезапустил Visual Studio, затем создал новый профиль для его публикации, проблема решена и успешно опубликована.

0
Muhammad Masud

Эй, у меня та же проблема на Mac, работающая над решением Cocoa C #. (Но я это решил!)

Всегда говорят, что корневой элемент отсутствует, поэтому он не может загрузить мой файл проекта C #.

У меня есть Visual Studio Mac Community Edition 2017 года .... Мне наконец-то удалось найти решение через несколько часов (мучительно!).

Мое решение заключается в том, что фреймворки, связанные с Visual Studio, старые или неработающие. Я обнаружил это потому, что пытался создать новое решение для Mac с помощью Cocoa, и он сказал «не удалось сохранить решение». Затем я попытался создать Android-решение, и оно работает нормально ... Перейдите в «Finder» и «Go» -> «Перейти к папке», затем перейдите в «Библиотека/Фреймворки». Я удалил mono.framework и фреймворки, связанные с Xamarin, потому что я считаю, что эти фреймворки Xamarin нарушены.

Затем удалил Visual Studio и переустановил его. Теперь все работает отлично!

0
Can Gao

Я получил эту проблему в проекте веб-API. Наконец понял, что это было в моих комментариях к методу "///". У меня есть эти комментарии для автоматического создания документации для методов API. Что-то в моих комментариях сводило это с ума. Я удалил все возвраты каретки, специальные символы и т.д. Не совсем уверен, что ему не понравилось, но это сработало.

0
Jarrette

Но я просто решил эту проблему, зайдя в систему управления исходным кодом и выбрав проект проблемы, щелкнув правой кнопкой мыши и выбрав пункт «Получить определенную версию» в меню «Дополнительно». Затем выберите «Тип последней версии», отметьте два флажка и нажмите кнопку «Получить». Затем я обновил решение, и мой проект вернулся к жизни, и проблема ушла. Обратите внимание, что это может перезаписать ваши локальные проекты, поэтому ваши текущие изменения могут потеряться. Так что если у вас нет проблем с вашей локальной копией, вы можете попробовать это. Надеюсь, поможет

0
Nithin Paul

В моем случае проблема возникла из-за закрытия моего ПК, в то время как Visual Studio оставалась открытой, поэтому в результате файл csproj.user сохранился пустым. К счастью, у меня уже есть резервная копия, поэтому я просто скопировал весь xml из csproj.user и вставил в мой файл csproj.user затронутого проекта, чтобы он работал отлично.

Этот файл просто содержит информацию об устройстве устройства и многое другое.

0
Mir Karam

В моем случае я получил сообщение, подобное этому: Смотрите эту картинку

Я только что прокомментировал приведенный ниже код в файле проекта (.csproj), и проблема была исправлена.

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

В моем случае я получил эту ошибку из-за пустого файла 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>
0
Matt

У меня было несколько крупных сбоев в сообществе VS2015.

Удалите все файлы .csproj.user

которые были полны нулевых символов, а также эти

C:\Users\имя_пользователя\AppData\Local\Temp \

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

0
CRice

В моем случае файлы RDLC работают с файлами ресурсов (.resx), у меня была эта ошибка, потому что я не создал соответствующий файл resx для своего отчета rdlc.

Мое решение было добавить файл .resx внутри App_LocalResources таким образом:

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

Это было легко исправить, чем я думал. Все, что я сделал, это очистил папку кэша сайта.

Удалить все из 

СПИСОК ПРИВОДОВ ОС:\Users\ИМЯ ПОЛЬЗОВАТЕЛЯ\AppData\Local\Microsoft\WebsiteCache

пример

C:\Users\Jack\AppData\Local\Microsoft\WebsiteCache

Для получения дополнительных визуальных советов студии, пожалуйста, посетите Мой блог

0
Dulanjana Wickramatantri