Sklonowałem lokalnie repozytorium SignalR ASP.NET Core i próbuję otworzyć rozwiązanie z poziomu następującego środowiska.
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
W końcu widzę wiele tego rodzaju komunikatów o błędach:
..\Repos\SignalR\src\Microsoft.AspNetCore.SignalR\Microsoft.AspNetCore.SignalR.csproj
: błąd: domyślna przestrzeń nazw XML projektu musi być przestrzenią nazw MSBuild XML. Jeśli projekt jest tworzony w formacie MSBuild 2003, dodajxmlns="http://schemas.microsoft.com/developer/msbuild/2003"
do elementu. Jeśli projekt został utworzony w starym formacie 1.0 lub 1.2, przekonwertuj go do formatu MSBuild 2003...\Repos\SignalR\src\Microsoft.AspNetCore.SignalR\Microsoft.AspNetCore.SignalR.csproj
Chcę wiedzieć, jak to naprawić we właściwy sposób.
asp.net-mvc
asp.net-core
visual-studio-2015
msbuild
.net-core
David Pine
źródło
źródło
Odpowiedzi:
Projekty, które próbujesz otworzyć, są w nowym formacie .NET Core csproj. Oznacza to, że musisz użyć programu Visual Studio 2017, który obsługuje ten nowy format.
Dla trochę historii, początkowo .NET Core
project.json
zamiast*.csproj
. Jednak po kilku poważnych wewnętrznych naradach w firmie Microsoft zdecydowali się wrócić docsproj
znacznie czystszego i zaktualizowanego formatu. Jednak ten nowy format jest obsługiwany tylko w VS2017.Jeśli chcesz otworzyć projekty, ale nie chce czekać aż 7 marca th do oficjalnego wydania VS2017, można użyć kodu Visual Studio zamiast.
źródło
Napotkałem ten problem podczas otwierania aplikacji Service Fabric GettingStartedApplication w programie Visual Studio 2015. Oryginalne rozwiązanie zostało oparte na platformie .NET Core w programie VS 2017 i wystąpił ten sam błąd podczas otwierania w 2015 r.
Oto kroki, które wykonałem, aby rozwiązać problem.
Widziałem następujący wiersz w tagu projektu:
<Project Sdk="Microsoft.NET.Sdk.Web" >
Postępuj zgodnie z instrukcjami wyświetlanymi w komunikacie o błędzie, aby dodać
xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
do tego taguPowinien teraz wyglądać następująco:
Zobaczyłem, że żaden element nie ma atrybutu aktualizacji, jak poniżej:
Skomentowałem to jak poniżej.
Na następny błąd: Nierozpoznana wersja w odwołaniu do pakietu
Zobaczyłem, że wersja jest tam w csproj xml, jak poniżej (dodatkowe wiersze PackageReference zostały usunięte dla zwięzłości)
Usunięto atrybut Version
Teraz otrzymuję następujące informacje:
Bingo! Uruchomiono jednokierunkowe uaktualnienie programu Visual Studio! Niech VS zrobi magię!
Projekt został załadowany, ale z błędami biblioteki referencyjnej.
Naprawiono błędy biblioteki referencyjnej indywidualnie, usuwając i zastępując w NuGet, aby projekt działał!
Mam nadzieję, że to pomoże innemu podróżnikowi kodu :-D
źródło
@ DavidG odpowiedź jest poprawna, ale chciałbym dodać, że jeśli budujesz z wiersza poleceń, równoważnym rozwiązaniem jest upewnienie się, że używasz odpowiedniej wersji
msbuild
(w tym konkretnym przypadku musi to być wersja 15).Uruchom,
msbuild /?
aby zobaczyć, której wersji używasz lubwhere msbuild
sprawdzić, z której lokalizacji środowisko pobiera plik wykonywalny i zaktualizować (lub wskazać właściwą lokalizację) narzędzi, jeśli to konieczne.Pobierz najnowsze narzędzie MSBuild stąd .
źródło
Jeśli pojawia się ten błąd podczas próby zbudowania aplikacji .Net Core 2.0 w VSTS, upewnij się, że definicja kompilacji używa
Hosted VS2017
kolejki agentów.źródło
Otrzymywałem te same wiadomości, gdy uruchamiałem tylko MSBuild z PowerShell.
dotnet msbuild "./project.csproj"
pracował dla mnie.źródło
jeśli projekt nie jest duży,
1- Zmień nazwę projektu folderu
2- Stwórz nowy projekt z tym samym projektem (przed zmianą nazwy)
3- Dodaj istniejące pliki ze starego projektu do nowego projektu (całkowicie takie same, te same foldery, te same nazwy, ...)
4- Otwórz nowy plik projektu (jako xml) i stary projekt
5- Skopiuj nowy plik projektu (zawartość xml) i wklej go do starego pliku projektu
6- Usuń stary projekt
7- zmień nazwę projektu starego folderu na starą nazwę
źródło