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

J'ai cloné le ASP.NET Core SignalR Repo 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

POINT 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

J'ai vu beaucoup de ces types de messages d'erreur:

..ReposSignalRsrcMicrosoft.AspNetCore.SignalRMicrosoft.AspNetCore.SignalR.csproj : erreur: l'espace de noms XML par défaut du projet doit être MSBuild XML namespace. Si le projet est créé dans MSBuild 2003 format, s'il Vous Plaît ajouter xmlns="http://schemas.microsoft.com/developer/msbuild/2003" à la élément. Si l' projet a été écrit dans l'ancien 1.0 ou 1.2 format, veuillez le convertir au format MSBuild 2003. ..ReposSignalRsrcMicrosoft.AspNetCore.SignalRMicrosoft.AspNetCore.SignalR.csproj

Je veux savoir comment résoudre ce problème de manière correcte.

94
demandé sur David Pine 2017-02-28 15:54:34

4 réponses

Les projets que vous essayez d'Ouvrir sont dans le 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'histoire, initialement. net Core utilisé project.json au lieu de *.csproj. Cependant, après une délibération interne considérable chez Microsoft, ils ont décidé de revenir à csproj mais avec un format beaucoup plus propre et mis à jour. Cependant, ce nouveau format n'est pris en charge que dans VS2017.

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

145
répondu DavidG 2017-02-28 12:56:46

J'ai rencontré ce problème lors de l'ouverture Du Tissu de Service GettingStartedApplication dans Visual Studio 2015. La solution originale a été construite 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.

  • faites un clic droit sur le projet (échec du chargement) et modifiez-le dans visual studio.
  • Vu la ligne suivante dans la balise Projet: <Project Sdk="Microsoft.NET.Sdk.Web" >

  • Suivi les instructions indiquées dans le message d'erreur d'ajouter xmlns="http://schemas.microsoft.com/developer/msbuild/2003" pour cette balise

Il devrait maintenant ressembler à:

<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)

L'élément "Update"  n'est pas reconnu

  • Vu qu'aucun élément n'avait un attribut de mise à jour comme ci-dessous:

    <None Update="wwwroot\**\*;Views\**\*;Areas\**\Views">
      <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
    </None>
    
  • A 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 paquet est méconnu La Version de l'élément < PackageReference> n'est pas reconnue

  • Vu que la Version est là dans csproj xml comme ci-dessous (lignes de référence PackageReference supplémentaires supprimées pour plus de concision)

  • Suppression de L'attribut de Version

    <PackageReference Include="Microsoft.AspNetCore.Diagnostics" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" />
    
  • Je reçois maintenant ce qui suit: VS mise à niveau automatique

Bingo!{[71] } la mise à niveau à Sens Unique de visual Studio a débuté! Laissez VS faire la magie!

  • Le projet chargé mais avec des erreurs LIB de référence. entrez la description de l'image ici

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

J'espère que cela aide un autre voyageur de code: - D

23
répondu Jersey_Guy 2017-06-28 15:00:36

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 vous assurer que vous utilisez la version appropriée de msbuild (dans ce cas particulier, il doit s'agir de la version 15).

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

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

9
répondu Nikita G. 2017-06-13 09:39:56

Si vous obtenez cette erreur en essayant de construire L'application.Net Core 2.0 sur VSTS, assurez-vous que votre définition de construction utilise la file D'attente de l'Agent Hosted VS2017.

4
répondu Scotty.NET 2017-12-06 14:22:10