Я локально клонировал репо ASP.NET Core SignalR и попытался открыть решение в следующей среде.
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
В итоге я вижу много таких сообщений об ошибках:
..\Repos\SignalR\src\Microsoft.AspNetCore.SignalR\Microsoft.AspNetCore.SignalR.csproj
: error: Пространство имен XML проекта по умолчанию должно быть пространством имен MSBuild XML. Если проект написан в формате MSBuild 2003, добавьтеxmlns="http://schemas.microsoft.com/developer/msbuild/2003"
его в элемент. Если проект был создан в старом формате 1.0 или 1.2, пожалуйста, преобразуйте его в формат MSBuild 2003...\Repos\SignalR\src\Microsoft.AspNetCore.SignalR\Microsoft.AspNetCore.SignalR.csproj
Я хочу знать, как это исправить правильно.
Ответы:
Проекты, которые вы пытаетесь открыть, представлены в новом формате .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 году я получил ту же ошибку.
Вот шаги, которые я следовал, чтобы решить проблему.
Увидел следующую строку в теге Project:
<Project Sdk="Microsoft.NET.Sdk.Web" >
Следуйте инструкциям, указанным в сообщении об ошибке, чтобы добавить
xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
к этому тегуТеперь это должно выглядеть так:
Увидел, что элемент None имеет атрибут обновления, как показано ниже:
Прокомментировал это как ниже.
На следующую ошибку: Версия в Ссылке Пакета не распознана
Увидел, что версия есть в csproj xml, как показано ниже (для краткости дополнительные строки PackageReference удалены)
Удалил атрибут Версия
Теперь я получаю следующее:
Бинго! Началось одностороннее обновление Visual Studio! Пусть VS сделает волшебство!
Проект загружен, но со ссылочными ошибками lib.
Исправлены ошибки ссылочной библиотеки по отдельности, путем удаления и замены в NuGet, чтобы проект заработал!
Надеюсь, это поможет другому путешественнику кода :-D
источник
@ DavidG ответ правильный, но я хотел бы добавить, что если вы строите из командной строки, эквивалентное решение - убедиться, что вы используете соответствующую версию
msbuild
(в данном конкретном случае это должна быть версия). 15).Запустите,
msbuild /?
чтобы узнать, какую версию вы используете, илиwhere msbuild
чтобы узнать, из какого места среда берет исполняемый файл, и при необходимости обновите (или укажите правильное местоположение) инструменты.Загрузите последнюю версию MSBuild здесь .
источник
Если вы получаете эту ошибку, пытаясь построить приложение .Net Core 2.0 на VSTS, убедитесь, что ваше определение сборки использует
Hosted VS2017
очередь агента.источник
Я получал те же сообщения, пока работал только msbuild от powershell.
dotnet msbuild "./project.csproj"
работал на меня.источник
если проект не большой,
1- изменить название папки проекта
2- сделать новый проект с тем же проектом (перед переименованием)
3 - добавить существующие файлы из старого проекта в новый проект (полностью одинаковые, те же папки, те же имена, ...)
4 - открыть новый файл проекта (как XML) и старый проект
5- скопируйте новый файл проекта (содержимое XML) и вставьте его в старый файл проекта
6 - удалить старый проект
7- переименуйте старую папку проекта в старое имя
источник