179 votes

L'espace de nom XML par défaut du projet doit être l'espace de nom XML de MSBuild.

J'ai cloné le ASP.NET Core SignalR Repo localement, et essayez d'ouvrir la solution depuis l'environnement suivant.

IDE

Microsoft Visual Studio Enterprise 2015
Version 14.0.25431.01 Update 3
Microsoft .NET Framework
Version 4.6.01055

DOT NET CLI

λ dotnet --info
.NET Command Line Tools (1.0.0-preview2-1-003177)

Product Information:
 Version:            1.0.0-preview2-1-003177
 Commit SHA-1 hash:  a2df9c2576

Runtime Environment:
 OS Name:     Windows
 OS Version:  6.1.7601
 OS Platform: Windows
 RID:         win7-x64

Je finis par voir beaucoup de messages d'erreur de ce type :

..\Repos\SignalR\src\Microsoft.AspNetCore.SignalR\Microsoft.AspNetCore.SignalR.csproj : erreur : L'espace de nom XML par défaut du projet doit être le espace de noms XML de MSBuild. Si le projet est écrit dans le format MSBuild 2003 veuillez ajouter xmlns="http://schemas.microsoft.com/developer/msbuild/2003" à l'élément élément. Si le projet a été rédigé dans l'ancien format 1.0 ou 1.2, veuillez le convertir en MSBu. 1.2, veuillez le convertir au format MSBuild 2003. ..\Repos\SignalR\src\Microsoft.AspNetCore.SignalR\Microsoft.AspNetCore.SignalR.csproj

Je veux savoir comment réparer cela correctement.

0 votes

J'ai juste supposé que je pourrais le faire, est-ce une supposition que je ne devrais pas faire ? J'espère qu'il y a une compatibilité descendante.

1 votes

J'obtiens cette erreur après avoir autorisé VS2017 RTM à mettre à jour le format du projet :-(

0 votes

J'ai posté une erreur similaire ici stackoverflow.com/questions/58336983/ Cependant, dans mon cas, je commence avec un nouveau projet et je n'essaie pas d'ouvrir un projet existant.

229voto

DavidG Points 12762

Les projets que vous essayez d'ouvrir sont au nouveau format .Net Core csproj. Cela signifie que vous devez utiliser Visual Studio 2017 qui prend en charge ce nouveau format.

Pour faire un peu d'histoire, à l'origine, .Net Core utilisait project.json au lieu de *.csproj . Cependant, après de longues délibérations internes chez Microsoft, ils ont décidé de revenir à csproj mais avec un format beaucoup plus propre et actualisé. Toutefois, ce nouveau format n'est pris en charge que dans VS2017.

Si vous souhaitez ouvrir les projets mais ne voulez pas attendre le 7 mars pour la version officielle de VS2017, vous pouvez utiliser Visual Studio Code à la place.

0 votes

Je connais très bien l'histoire, je suppose que j'ai juste supposé que cela fonctionnerait. L'erreur ne semble pas trop éloignée du domaine du possible. Êtes-vous certain qu'il n'y a aucun moyen de faire fonctionner ce système avec un minimum d'effort pour le moment, sans l'erreur de l'utilisateur ? Visual Studio 2017 RC des bits ?

0 votes

Pas avec VS2015, non. C'est pourquoi j'ai proposé VS Code comme alternative. Au moins, vous n'avez qu'une semaine pour attendre la sortie de VS2017 :)

0 votes

C'est vrai, merci ! Quelle version du DOT NET CLI dont j'ai besoin si je veux utiliser Code VS ?

59voto

Jersey_Guy Points 1

J'ai rencontré ce problème lors de l'ouverture du Service Fabric. L'application GettingStartedApplication dans Visual Studio 2015. La solution originale a été construite sur .NET Core dans VS 2017 et j'ai obtenu la même erreur en l'ouvrant dans 2015.

Voici les étapes que j'ai suivies pour résoudre le problème.

  • Faites un clic droit sur le projet (load Failed) et éditez-le dans Visual Studio.

  • Voyez la ligne suivante dans la balise Project : <Project Sdk="Microsoft.NET.Sdk.Web" >

  • Suivez l'instruction indiquée dans le message d'erreur pour ajouter xmlns="http://schemas.microsoft.com/developer/msbuild/2003" à cette étiquette

Il devrait maintenant ressembler à ceci :

<Project Sdk="Microsoft.NET.Sdk.Web" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  • Le rechargement du projet m'a donné l'erreur suivante (la vôtre peut être différente en fonction de ce qui est inclus dans votre projet)

"Update" element <None> is unrecognized

  • J'ai vu que l'élément None avait un attribut update comme ci-dessous :

    <None Update="wwwroot\**\*;Views\**\*;Areas\**\Views">
      <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
    </None>
  • Je l'ai commenté comme ci-dessous.

    <!--<None Update="wwwroot\**\*;Views\**\*;Areas\**\Views">
      <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
    </None>-->
  • L'erreur suivante : La version dans la référence du paquet n'est pas reconnue Version in element <PackageReference> is unrecognized

  • J'ai vu que la version est présente dans le xml csproj comme ci-dessous (les lignes supplémentaires de PackageReference ont été supprimées par souci de concision).

  • Suppression de l'attribut Version

    <PackageReference Include="Microsoft.AspNetCore.Diagnostics" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" />
  • J'obtiens maintenant ce qui suit : VS Auto Upgrade

Bingo ! La mise à jour de Visual Studio One-way a démarré ! Laissez VS faire la magie !

  • Le projet a été chargé mais avec des erreurs de référence. enter image description here

  • Correction des erreurs de librairie de référence individuellement, en supprimant et remplaçant dans NuGet pour que le projet fonctionne !

J'espère que cela aidera un autre voyageur du code :-D

3 votes

@DavidG Ce n'est pas une perte de temps puisque tous les projets n'ont pas une branche VS2015.

0 votes

Je dois ajouter que vous devez cliquer sur "Afficher tous les fichiers" dans la barre d'outils de l'explorateur de solutions afin de voir à nouveau les dossiers du projet. Ils apparaîtront "en pointillés" et vous devrez cliquer avec le bouton droit de la souris, sélectionner chacun d'entre eux et choisir "Inclure dans le projet" pour les réintégrer.

0 votes

C'est exactement les problèmes que j'ai rencontrés Je les ai suivis pas à pas Merci !

15voto

Nikita G. Points 1122

La réponse de @DavidG est correcte, mais je voudrais ajouter que si vous construisez à partir de la ligne de commande, la solution équivalente est de s'assurer que vous utilisez la version appropriée de msbuild (dans ce cas particulier, il doit s'agir de la version 15).

Exécuter msbuild /? pour voir quelle version vous utilisez ou where msbuild pour vérifier à partir de quel emplacement l'environnement prend l'exécutable et mettre à jour (ou pointer vers le bon emplacement de) les outils si nécessaire.

Téléchargez la dernière version de l'outil MSBuild à partir de ici .

6voto

Scotty.NET Points 4373

Si vous obtenez cette erreur en essayant de construire une application .Net Core 2.0 sur VSTS, assurez-vous que votre définition de construction utilise l'attribut Hosted VS2017 File d'attente des agents.

0 votes

J'avais un problème similaire avec un projet VS Azure Functions qui ciblait .net framework mais générait toujours le fichier csproj dans un format core. Cette correction a fonctionné pour moi.

5voto

you_rule Points 21

J'obtenais les mêmes messages lorsque j'exécutais juste msbuild depuis powershell.

dotnet msbuild "./project.csproj" a fonctionné pour moi.

1 votes

C'est en gros la même réponse que este . Vous devez utiliser la dernière version de msbuild.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X