Пространство имен XML проекта по умолчанию должно быть пространством имен MSBuild XML

я клонировал ASP.NET Core SignalR Repo локально и попробуйте открыть решение из следующей среды.

IDE

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

ТОЧКА 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

Я в конечном итоге вижу много таких сообщений об ошибках:

..ReposSignalRsrcMicrosoft.AspNetCore.SignalRMicrosoft.AspNetCore.SignalR.csproj : ошибка: пространство имен XML проекта по умолчанию должно быть Пространство имен MSBuild XML. Если проект создан в MSBuild Две тысячи три формат, пожалуйста, добавьте xmlns="http://schemas.microsoft.com/developer/msbuild/2003" к элемент. Если проект был создан в старой версии 1.0 или 1.2 формат, пожалуйста, преобразуйте его в формат MSBuild 2003. ..ReposSignalRsrcMicrosoft.AspNetCore.SignalRMicrosoft.AspNetCore.SignalR.csproj

Я хочу знать как исправить это правильный путь.

4 ответов


проекты, которые вы пытаетесь открыть, находятся в новом формате .Net Core csproj. Это означает, что вам нужно использовать Visual Studio 2017, который поддерживает этот новый формат.

для Немного истории, первоначально .Net Core используется project.json вместо *.csproj. Однако после некоторых значительных внутренних обсуждений в Microsoft они решили вернуться к csproj но с гораздо более чистым и обновленным форматом. Однако этот новый формат поддерживается только в VS2017.

Если вы хотите чтобы открыть проекты, но не хотите ждать до 7 марта официального выпуска VS2017, вместо этого можно использовать код Visual Studio.


я столкнулся с этой проблемой при открытии Service Fabric GettingStartedApplication в Visual Studio 2015. Исходное решение было построено на .NET Core в VS 2017, и я получил ту же ошибку при открытии в 2015.

вот шаги, которые я следовал, чтобы решить проблему.

  • щелкните правой кнопкой мыши (ошибка загрузки) проект и измените в visual studio.
  • увидел следующую строку в теге проекта : <Project Sdk="Microsoft.NET.Sdk.Web" >

  • следуйте инструкциям, показанным в сообщении об ошибке, чтобы добавить xmlns="http://schemas.microsoft.com/developer/msbuild/2003" этот тег

теперь должно выглядеть так:

<Project Sdk="Microsoft.NET.Sdk.Web" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  • перезагрузка проекта дала мне следующую ошибку (ваша может отличаться на основе того, что включено в ваш проект)

"Update" element <None> is unrecognized

  • увидел, что ни один элемент не имеет атрибута update как ниже:

    <None Update="wwwroot\**\*;Views\**\*;Areas\**\Views">
      <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
    </None>
    
  • прокомментировал это, как показано ниже.

    <!--<None Update="wwwroot\**\*;Views\**\*;Areas\**\Views">
      <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
    </None>-->
    
  • на следующую ошибку: версия в ссылке на пакет не распознается Version in element <PackageReference> is unrecognized

  • видел, что версия есть в csproj xml, как показано ниже (дополнительные строки PackageReference удалены для краткости)

  • раздели атрибут версии

    <PackageReference Include="Microsoft.AspNetCore.Diagnostics" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" />
    
  • теперь я получить следующее: VS Auto Upgrade

Бинго! началось одностороннее обновление visual Studio! Пусть VS делает магию!

  • проект загружен, но со ссылочными ошибками lib. enter image description here

  • исправлена ссылка lib ошибки по отдельности, путем удаления и замены в NuGet, чтобы получить проект работает!

надеюсь, это поможет другому коду путешественник: - D


@DavidG является правильным, но я хотел бы добавить, что если вы строите из командной строки, что эквивалентно решением является, чтобы убедиться, что вы используете соответствующую версию msbuild (в данном конкретном случае это должна быть версия 15).

выполнить msbuild /? посмотреть какую версию вы используете или where msbuild чтобы проверить, из какого местоположения среда берет исполняемый файл, и при необходимости обновить (или указать правильное расположение) инструментов.

скачать последний инструмент MSBuild из здесь.


Если получение этой ошибки при попытке построить приложение .Net Core 2.0 на VSTS, убедитесь, что ваше определение сборки использует Hosted VS2017 очереди агента.