web-dev-qa-db-fra.com

Comment réparer "L'élément racine est manquant." lors de la construction de Visual Studio (VS)?

Comment réparer "L'élément racine est manquant." lors de la construction de Visual Studio (VS)?

Avez-vous une idée du fichier à examiner dans ma solution?

En fait, je reçois ce message d'erreur à l'intérieur de "Visual Build Pro" lorsque j'utilise la commande "Make VS 2008". Cette commande fonctionne très bien lors de la création d’autres solutions (environ 20) et je ne sais pas trop pourquoi la mienne reçoit l’erreur. 

Toute aide serait très appréciée. :) 

J'utilise VS 2008 et Visual Build Pro 6.7.

53
Gerhard Weiss

Assurez-vous que tout fichier XML (ou tout fichier pouvant être interprété comme un fichier XML par Visual Studio) possède une structure XML correcte, c'est-à-dire un élément racine (avec n'importe quel nom, j'ai utilisé rootElement dans mon exemple):

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

Dans mon cas, c’était le fichier xxxxxxxxxxxxx.vcxproj.user qui était à l’origine du problème (il était vide) après un crash. Je l'ai renommé et le problème a disparu.

36
Elliot

Vous obtiendrez également le message "L'élément racine est manquant" lorsque la nomenclature est activée :). BOM = marque d'ordre d'octet. C'est un caractère supplémentaire qui est ajouté au début d'un fichier lorsqu'il est enregistré avec le mauvais codage.
Cela peut arriver parfois dans Visual Studio lorsque vous travaillez avec des fichiers XML. Vous pouvez coder quelque chose pour le supprimer de tous vos fichiers ou, si vous le connaissez, vous pouvez forcer Visual Studio à l'enregistrer avec un codage spécifique (utf-8 ou ascii IIRC). 

Si vous ouvrez le fichier dans un éditeur autre que VS (essayez le bloc-notes ++), vous verrez deux caractères amusants avant le <? déclaration XML.

Pour résoudre ce problème dans VS, ouvrez le fichier dans VS, puis en fonction de la version de VS.

  • Fichier> Options d'enregistrement avancées> choisissez un codage approprié
  • Fichier> Enregistrer sous> conserver le nom du fichier, cliquez sur la flèche déroulante située à droite du bouton de sauvegarde pour sélectionner un codage.
31
stombeur

Dans mon cas.J'obtenais une erreur d'élément manquant indiquant le fichier NuGet.Config .

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

alors je viens d'ajouter la balise configuration qui enveloppe en fait le code XML en entier. Travaille maintenant bien pour moi

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

Dans mon cas, lorsque j'ai ouvert le fichier .csproj, celui-ci était vide, je suis allé à mon commit précédent dans git, j'ai copié le contenu de ce fichier et l'ai collé dans mon fichier .csproj actuel. Après quoi, j'ai supprimé le fichier .csproj.user, rechargé mon projet et tout a recommencé à fonctionner.

4
Alf Moh

J'ai la même erreur. Microsoft.Data.Entity n'a pas pu charger l'élément racine manquant. Lorsque je supprime ce fichier de C:\Windows\Microsoft.NET\Framework\v4.0.30319 et que je réouvre ma solution, mon problème a été résolu. Tout va bien

4
user4481951

Vous pouvez également rechercher le fichier. Accédez à votre répertoire de projet avec PowerShell et exécutez 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

Dans mon cas, le fichier C:\Users\xxx\AppData\Local\PreEmptive Solutions\Dotfuscator Professional Edition\4.0\dfusrprf.xml était plein de NULL.

Je l'ai supprimé; il a été recréé lors du premier lancement de Dotfuscator, puis la normalité a été restaurée.

3
pascal

J'avais un écran bleu lors de l'exécution de Visual Studio 2013, lorsque je redémarrais, j'avais l'intention d'exécuter à nouveau mon projet, mais j'avais toujours ce type d'erreur. .. de toute façon 

Suppression des dossiers avec les informations temporaires Résoudre ce problème . Dans mon cas, le projet était un serveur Windows et créait un dossier contenant certaines informations Tem.

le dossier était

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

inside Existe un dossier avec le nom du projet + une interface graphique générée Service.ServerHostLoader_Url_u2jn0xjjj1h0a3i2v03ft15vj4x52i

c'est le dossier que j'ai supprimé et je peux maintenant relancer le projet.

2
Ramomex1

Cette erreur peut parfois se produire lorsque vous modifiez certains paramètres de la chaîne d’outils Atmel Studio 6.1.2730 SP2.

Dans mon cas, j'ai essayé de modifier Propriétés du projet> Chaîne d'outils> Éditeur de liens> Paramètres généraux avec l'option "Toutes les configurations" sélectionnée dans la configuration. Quand j'ai coché ou décoché un paramètre, une boîte de dialogue avec l'erreur est apparue. Cependant, j’ai découvert que je pouvais apporter les mêmes modifications si je ne les appliquais qu’à une seule configuration à la fois; c'est-à-dire avec uniquement 'Debug' ou 'Release' sélectionné au lieu de 'Toutes les configurations'.

Fait intéressant, j'ai pu par la suite éditer les mêmes paramètres de l'éditeur de liens même avec l'option 'Toutes les configurations' sélectionnée. Je ne sais pas ce qui a changé dans mon projet qui a rendu cela possible.

2
ptschnack

J'ai eu le même problème dans un projet Xamarin Forms. Le projet iOS n'était pas disponible et je ne pouvais pas recharger le projet. Je cherchais une solution qui ne nécessite aucune désinstallation. 

La réponse que j’ai obtenue de ce blog: https://dev.to/codeprototype/xamarin-form-application-failed-toload-Android-project-root-element-missing--27o0

Donc, sans rien désinstaller, vous pouvez supprimer le.csproj.user (ou le renommer) afin que Visual Studio crée le fichier à nouveau. Travaillé pour moi deux fois.

1
Tharindu

Cette erreur est causée par un fichier proj corrompu. Visual Studio allway a un fichier de projet de sauvegarde dans un dossier spécifique Original-mai-18-2018-1209h..csproj Récupéré-18 mai-18h18-2019..csproj

Vous avez seulement besoin du fichier de copie: Original-18 mai 2017..csproj Et renommez-le en .csproj & overide dans le dossier racine du projet . Le problème est résolu!

1
user3037124

Dans mon cas, j'ai mis à niveau vers VS2017 et je voulais construire tous les projets avec MSBuild 4 avec mon script de construction (qui utilisait MSBuild 3.5 lorsque nous utilisions VS2015). Cette mise à niveau de MSBuild semblait correcte pour les applications de bureau Windows, mais celles de Windows CE avec un cadre compact me donnaient cette erreur déroutante. Le retour à MSBuild 3.5 pour les projets Windows CE a résolu le problème pour moi.

J'ai eu la BOM dans les fichiers .csproj en passant et les ai supprimés pour tous les projets dans une solution qui ne se construirait pas, mais qui ne l'aiderait pas.

1
Martin Maat

J'avais ce problème sous VS 2017, lors de la construction, l'erreur «L'élément racine manquait» a été générée. Ce qui a résolu le problème pour moi était d'aller dans Outils> Gestionnaire de paquets Nuget> Paramètres du gestionnaire de paquets> Général> Effacer tous les caches Nuget . Après avoir fait cela, j'ai relancé la construction et elle a été corrigée. 

1
Shawn Hill

Dans mon cas, je viens de renommer le .csproj.user, de redémarrer Visual Studio et d’ouvrir le projet. Il a automatiquement créé un autre fichier .csproj.user et la solution a bien fonctionné pour moi.

0
MBA

La suppression du fichier .user est exactement ce qui a résolu le problème pour moi. Un coup de foudre près du bureau a éteint mon ordinateur et corrompu mon fichier .user et le projet ne s'est pas chargé. J'ai ouvert le fichier dans Notepad ++ et les "espaces" se sont avérés être des caractères [NULL]. Supprimé le fichier .user et le fichier chargé!

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

0
Shailendra bind

Dans le projet de forme xamarin. j'ai effacé 

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

Dans mon cas, j'utilisais vs 2010 avec Crystal Report. Innerexception a révélé que l'élément racine manquait d'erreur. Allez dans le répertoire tel que C:\Utilisateurs\sam\AppData\Local\dssms\dssms.vshost.exe_Url_uy5is55gioxym5avqidulehrfjbdsn13\1.0.0.0 qui est donné dans le message inermerm et assurez-vous que user.config est un fichier XML correct (le mien était vide pour une raison quelconque).

0
Nie Selam

Dans mon cas, xxxx.pubxml.user n'a pas été chargé lors d'une tentative de publication de l'application. J'ai supprimé le fichier et redémarré le studio visuel, puis créé un nouveau profil pour le publier. Le problème est résolu et publié avec succès.

0
Muhammad Masud

Hé, j'ai le même problème sur Mac travaillant sur une solution Cocoa C #. (Mais je l'ai résolu!)

Il est toujours indiqué que l'élément racine est manquant, il ne peut donc pas charger mon fichier de projet C #.

J'ai l'édition 2017 de Visual Studio Mac Community Edition… .. J'ai finalement réussi à trouver une solution après plusieurs heures (douloureuse!).

Ma solution est parce que les frameworks liés à Visual Studio sont anciens ou cassés ..__ J'ai trouvé cela parce que j'ai essayé de créer une nouvelle solution Mac par Cocoa et que cela disait "Échec de l'enregistrement de la solution". Ensuite, j’ai essayé de créer une solution Android et tout fonctionnait bien . Allez dans votre "Finder" et "Go" -> "Aller à un dossier" puis dans "Bibliothèque/Frameworks". J'ai supprimé mono.framework et les frameworks liés à Xamarin car je pense que ces frameworks sont cassés.

Ensuite, désinstallé Visual Studio et le réinstallé. Maintenant tout fonctionne bien!

0
Can Gao

J'ai eu ce problème sur un projet Web API. Finalement, j'ai compris que c'était dans mes commentaires de méthode "///". J'ai ces commentaires mis à générer automatiquement la documentation pour les méthodes de l'API. Quelque chose dans mes commentaires l'a rendu fou. J'ai supprimé tous les retours à la calèche, les caractères spéciaux, etc.

0
Jarrette

Il a simplement résolu ce problème en accédant à l'Explorateur de contrôle de code source et en sélectionnant le projet de problème, en effectuant un clic droit et en sélectionnant l'option Obtenir une version spécifique dans le menu Avancé. Et puis sélectionné Tapez comme dernière version et cochez les deux cases suivantes, puis cliquez sur le bouton Obtenir. Ensuite, j'ai actualisé la solution et mon projet est revenu vivre et le problème a disparu. Veuillez noter que cela pourrait écraser vos projets locaux et donc que vos modifications actuelles pourraient être perdues. Donc, si vous n'avez pas de problèmes avec votre copie locale, vous pouvez essayer ceci. J'espère que ça aide

0
Nithin Paul

Dans mon cas, le problème est dû à la fermeture de mon ordinateur alors que Visual Studio restait ouvert. Le fichier csproj.user est donc enregistré vide. Heureusement, j'ai déjà sauvegardé, alors je viens de copier tout le code XML de csproj.user et de le coller dans mon fichier de projet affecté csproj.user, afin que cela fonctionne parfaitement.

Ce fichier ne contient que des informations sur le périphérique de construction et quelques autres.

0
Mir Karam

Dans mon cas, j'ai reçu un message comme celui-ci: Voir cette image

Je viens de commenter le code snippé ci-dessous dans le fichier de projet (.csproj) et le problème a été résolu.

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

Dans mon cas Microsoft.Common.CurrentVersion.targets était corrompu. J'ai copié ce fichier à partir d'un autre système et cela a fonctionné.

0
Vivek Pandey

Dans mon cas, j'ai eu cette erreur à cause d'un fichier vide packages.config. Cela a entraîné l'échec du gestionnaire de paquets NUGET et l'affichage de l'erreur L'élément racine est manquant. La solution était de copier des éléments d’un autre fichier non vide, puis de le modifier en fonction des besoins.

Exemple (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

J'ai eu quelques crashs massifs de la communauté VS2015.

Supprimer tous les fichiers .csproj.user

qui étaient pleins de caractères nuls, et aussi ceux-ci

C:\Utilisateurs\Nom d'utilisateur\AppData\Local\Temp \

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

0
CRice

Dans mon cas, les fichiers RDLC fonctionnent avec les fichiers de ressources (.resx). Cette erreur me causait car je n'avais pas créé le fichier resx correspondant pour mon rapport rdlc.

Ma solution a été d'ajouter le fichier .resx à l'intérieur de App_LocalResources de la manière suivante:

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

C'était facile à résoudre que je pensais. Je n'ai fait que vider le dossier cache du site Web.

Supprimer tout de 

LETTRE DE LECTEUR DE SE:\Utilisateurs\NOM UTILISATEUR\AppData\Local\Microsoft\WebsiteCache

exemple

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

Pour plus de conseils visuels sur les studios, rendez-vous sur Mon Blog

Aucune de ces solutions n'a résolu mon problème.

Dans mon cas, j'ai fini mon travail et j'ai éteint mon ordinateur. Le lendemain, je n'ai pas pu compiler mon projet. J'ai essayé certaines de ces solutions et j'ai réalisé que tous mes projets ne fonctionnaient pas.

Pour y remédier, je réinstalle .net core Framework.

Visual Studio 2017

0
AFetter

Dans mon cas, le fichier .csproj a été modifié au format codé. J'ai annulé les modifications apportées à csproj dans Git (Team Explorer) et rechargé le fichier de projet. Cela a résolu le problème.

0
Archana R