Пространство имен 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

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

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

..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   94  

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

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

    <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 One-way вышло! Пусть VS творит волшебство!

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

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

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

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

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

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

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