web-dev-qa-db-fra.com

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

J'ai cloné le référentiel ASP.NET Core SignalR localement et essayez d'ouvrir la solution à partir de 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 ces types de messages d'erreur:

..\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 MSBuild. Si le projet est créé dans MSBuild 2003 format, veuillez ajouter xmlns="http://schemas.Microsoft.com/developer/msbuild/2003" au élément. Si le projet a été créé dans les anciennes versions 1.0 ou 1.2, veuillez le convertir au format MSBuild 2003. ..\Repos\SignalR\src\Microsoft.AspNetCore.SignalR\Microsoft.AspNetCore.SignalR.csproj

Je veux savoir comment résoudre ce problème correctement.

110
David Pine

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 un peu d’historique, initialement, .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é. Cependant, ce nouveau format n'est pris en charge que par VS2017.

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

170
DavidG

J'ai rencontré ce problème lors de l'ouverture de Service Fabric GettingStartedApplication dans Visual Studio 2015. La solution d'origine reposait sur .NET Core dans VS 2017 et j'ai eu la même erreur lors de l'ouverture en 2015.

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

  • Cliquez avec le bouton droit sur le projet (échec du chargement) et modifiez-le dans Visual Studio.
  • Vu la ligne suivante dans la balise Project: <Project Sdk="Microsoft.NET.Sdk.Web" >

  • Suivez les instructions affichées dans le message d'erreur pour ajouter xmlns="http://schemas.Microsoft.com/developer/msbuild/2003" à cette balise

Il devrait maintenant ressembler à:

<Project Sdk="Microsoft.NET.Sdk.Web" xmlns="http://schemas.Microsoft.com/developer/msbuild/2003">
  • Recharger le 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

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

    <None Update="wwwroot\**\*;Views\**\*;Areas\**\Views">
      <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
    </None>
    
  • Commenté cela comme ci-dessous.

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

  • Vu que la version est présente dans csproj xml comme ci-dessous (lignes de référence de paquetage supplémentaires supprimées par souci de concision)

  • Dépouillé de l'attribut Version

    <PackageReference Include="Microsoft.AspNetCore.Diagnostics" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" />
    
  • Je reçois maintenant le texte suivant:  VS Auto Upgrade

Bingo! La mise à niveau à sens unique de Visual Studio est entrée en jeu! Laissez VS faire la magie!

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

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

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

28
Jersey_Guy

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

Exécutez msbuild /? pour voir quelle version vous utilisez ou where msbuild pour vérifier l’emplacement de l’environnement à partir duquel l’exécutable est exécuté et mettez-le à jour (ou pointez sur le bon emplacement) des outils si nécessaire.

Téléchargez le dernier outil MSBuild à partir de ici .

10
Nikita G.

Si cette erreur survient lors de la tentative de création de l'application .Net Core 2.0 sur VSTS, assurez-vous que votre définition de construction utilise la file d'attente Hosted VS2017 Agent.

6
Scotty.NET

Je recevais les mêmes messages pendant que j'exécutais msbuild à partir de powershell.

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

0
you_rule