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 ajouterxmlns="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.
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.
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.
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">
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
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" />
Bingo! La mise à niveau à sens unique de Visual Studio est entrée en jeu! Laissez VS faire la magie!
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
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 .
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.
Je recevais les mêmes messages pendant que j'exécutais msbuild à partir de powershell.
dotnet msbuild "./project.csproj"
a travaillé pour moi.