it-swarm.com.de

Der Standard-XML-Namespace des Projekts muss der MSBuild XML-Namespace sein

Ich habe das ASP.NET Core SignalR Repo lokal geklont und versuche, die Lösung in der folgenden Umgebung zu öffnen.

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

Am Ende sehe ich viele dieser Fehlermeldungen:

..\Repos\SignalR\src\Microsoft.AspNetCore.SignalR\Microsoft.AspNetCore.SignalR.csproj : error: Der Standard-XML-Namespace des Projekts muss die .__ sein. MSBuild XML-Namespace. Wenn das Projekt in MSBuild 2003 erstellt wurde Format bitte hinzufügen xmlns="http://schemas.Microsoft.com/developer/msbuild/2003" an die Element. Wenn das Projekt in der alten Version 1.0 oder .__ erstellt wurde. 1.2 Format, bitte konvertieren Sie es in das MSBuild 2003 Format. ..\Repos\SignalR\src\Microsoft.AspNetCore.SignalR\Microsoft.AspNetCore.SignalR.csproj

Ich möchte wissen, wie ich das richtig beheben kann.

110
David Pine

Die Projekte, die Sie öffnen möchten, haben das neue .Net Core csproj-Format. Dies bedeutet, dass Sie Visual Studio 2017 verwenden müssen, das dieses neue Format unterstützt.

Für ein wenig Geschichte verwendete .Net Core anfangs project.json anstelle von *.csproj. Nach einigen umfangreichen internen Überlegungen bei Microsoft entschieden sie sich jedoch für csproj, jedoch mit einem viel saubereren und aktualisierten Format. Dieses neue Format wird jedoch nur in VS2017 unterstützt.

Wenn Sie die Projekte öffnen möchten, aber nicht bis zum 7. März auf die offizielle Version von VS2017 warten möchten, können Sie stattdessen Visual Studio Code verwenden.

170
DavidG

Ich habe dieses Problem beim Öffnen des Dienstgefüges GettingStartedApplication in Visual Studio 2015 festgestellt. Die ursprüngliche Lösung wurde in VS 2017 auf .NET Core erstellt, und beim Öffnen im Jahr 2015 wurde die gleiche Fehlermeldung angezeigt.

Hier sind die Schritte, die ich befolgt habe, um das Problem zu beheben.

  • Klicken Sie mit der rechten Maustaste auf (Laden fehlgeschlagen) und bearbeiten Sie sie in Visual Studio.
  • Sägen Sie im Project-Tag die folgende Zeile: <Project Sdk="Microsoft.NET.Sdk.Web" >

  • Befolgen Sie die Anweisungen in der Fehlernachricht, um diesem Tag xmlns="http://schemas.Microsoft.com/developer/msbuild/2003" hinzuzufügen

Es sollte jetzt so aussehen:

<Project Sdk="Microsoft.NET.Sdk.Web" xmlns="http://schemas.Microsoft.com/developer/msbuild/2003">
  • Beim erneuten Laden des Projekts wurde der nächste Fehler angezeigt. (Je nachdem, was in Ihrem Projekt enthalten ist, kann sich Ihr Fehler unterscheiden.)

 "Update" element <None> is unrecognized

  • Sah, dass das None-Element ein Update-Attribut wie folgt hatte:

    <None Update="wwwroot\**\*;Views\**\*;Areas\**\Views">
      <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
    </None>
    
  • Kommentierte das unten.

    <!--<None Update="wwwroot\**\*;Views\**\*;Areas\**\Views">
      <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
    </None>-->
    
  • Beim nächsten Fehler: Die Version in der Paketreferenz ist nicht erkannt  Version in element <PackageReference> is unrecognized

  • Ich habe gesehen, dass Version in csproj xml wie folgt vorhanden ist (zusätzliche PackageReference-Zeilen wurden der Kürze halber entfernt)

  • Das Version-Attribut wurde entfernt

    <PackageReference Include="Microsoft.AspNetCore.Diagnostics" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" />
    
  • Ich bekomme jetzt folgendes:  VS Auto Upgrade

Bingo! Das visuelle Studio One-Way-Upgrade hat begonnen! Lass VS die Magie tun!

  • Das Projekt wurde geladen, aber mit Referenzlib-Fehlern.  enter image description here

  • Die Fehler der Referenzlibs wurden einzeln behoben, indem in NuGet entfernt und ersetzt wurde, um das Projekt zum Laufen zu bringen!

Hoffe das hilft einem anderen Code-Reisenden :-D

28
Jersey_Guy

@ DavidGs Antwort ist korrekt, aber ich möchte hinzufügen, dass wenn Sie von der Befehlszeile aus bauen, die entsprechende Lösung darin besteht, sicherzustellen, dass Sie die entsprechende Version von msbuild verwenden (in diesem speziellen Fall muss dies der Fall sein) Version 15).

Führen Sie msbuild /? aus, um zu sehen, welche Version Sie verwenden, oder where msbuild, um zu überprüfen, an welchem ​​Ort die Umgebung die ausführbare Datei abruft, und aktualisieren Sie ggf. die Werkzeuge (oder zeigen Sie auf den richtigen Ort).

Laden Sie das neueste MSBuild-Tool von hier herunter.

10
Nikita G.

Wenn Sie diesen Fehler beim Erstellen der .Net Core 2.0-App unter VSTS erhalten, stellen Sie sicher, dass Ihre Builddefinition die Hosted VS2017-Agentenwarteschlange verwendet.

6
Scotty.NET

Ich habe die gleichen Nachrichten erhalten, als ich gerade von Powershell aus msbuild lief.

dotnet msbuild "./project.csproj" arbeitete für mich.

0
you_rule