프로젝트의 기본 XML 네임 스페이스는 MSBuild XML 네임 스페이스 여야합니다.


150

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

닷넷 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

올바른 방법으로 문제를 해결하는 방법을 알고 싶습니다.


방금 내가 할 수 있다고 가정했는데, 내가 가정해서는 안된다는 것입니까? 이것이 이전 버전과 호환되기를 바랍니다.
David Pine

1
VS2017 RTM이 프로젝트 형식을 업데이트하도록 허용 한 후이 오류가 발생합니다
Simon_Weaver

나는 비슷한 오류를 여기에 게시했다. stackoverflow.com/questions/58336983/… , 그러나 내 경우에는 기존 프로젝트를 열려고하지 않고 새로운 프로젝트로 시작하고 있습니다.
joedotnot

답변:


212

열려고하는 프로젝트는 새로운 .NET Core csproj 형식입니다. 즉,이 새로운 형식을 지원하는 Visual Studio 2017을 사용해야합니다.

약간의 역사를 위해 처음에는 .NET Core project.json대신 .NET Core가 사용 되었습니다 *.csproj. 그러나 Microsoft의 상당한 내부 심의 후에 그들은 csproj훨씬 더 깨끗하고 업데이트 된 형식으로 돌아 가기로 결정했습니다 . 그러나이 새로운 형식은 VS2017에서만 지원됩니다.

당신이 프로젝트를 열고 자하지만 3월 7일 때까지 기다리지 않으려면 공식 VS2017 릴리스, 대신 비주얼 스튜디오 코드를 사용할 수 있습니다.


나는 역사에 매우 익숙하다. 나는 이것이 효과가 있다고 가정했다. 오류가 가능한 영역에서 너무 멀리 떨어진 것처럼 보이지 않습니다. Visual Studio 2017 RC 비트가 없으면 당분간 최소한의 노력 으로이 작업을 수행 할 수있는 방법이 없다고 확신 하십니까?
David Pine

VS2015에는 없습니다. 그래서 VS 코드를 대안으로 제공했습니다. 적어도 당신은 단지 :) 출시 될 VS2017를 기다리는 일주일이
DavidG

사실입니다, 감사합니다! VS Code 를 사용하려면 어떤 버전의 DOT NET CLI 가 필요 합니까?
David Pine

2
@ThePartyTurtle 공정하게 말하면 VS2015에게 절대 지원하지 않는 파일 형식을 이해하도록 요청합니다.
DavidG

44

Visual Studio 2015에서 Service Fabric GettingStartedApplication 을 여는 동안이 문제가 발생 했습니다. 원래 솔루션은 VS 2017의 .NET Core에서 빌드되었으며 2015 년에 열 때 동일한 오류가 발생했습니다.

문제를 해결하기 위해 수행 한 단계는 다음과 같습니다.

  • (로드 실패) 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 Visual Studio에서 편집하십시오.
  • Project 태그에서 다음 줄을 보았습니다. <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">
  • 프로젝트를 다시로드하면 다음 오류가 발생했습니다 (프로젝트에 포함 된 내용에 따라 다를 수 있습니다)

"업데이트"요소 <없음>이 인식되지 않습니다

  • None 요소에 아래와 같이 업데이트 속성이 있음을 확인하십시오.

    <None Update="wwwroot\**\*;Views\**\*;Areas\**\Views">
      <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
    </None>
    
  • 아래와 같이 주석 처리했습니다.

    <!--<None Update="wwwroot\**\*;Views\**\*;Areas\**\Views">
      <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
    </None>-->
    
  • 다음 오류로 : 패키지 참조의 버전을 인식 할 수 없습니다 <PackageReference> 요소의 버전이 인식되지 않습니다

  • 버전이 csproj xml에 다음과 같이 있음을 알았습니다 (간단하게 추가 패키지 참조 행이 제거됨)

  • 버전 속성 제거

    <PackageReference Include="Microsoft.AspNetCore.Diagnostics" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" />
    
  • 이제 다음을 얻습니다. VS 자동 업그레이드

빙고! 비주얼 스튜디오 단방향 업그레이드가 시작되었습니다! VS가 마술을하도록하세요!

  • 프로젝트가로드되었지만 참조 lib 오류가 발생했습니다. 여기에 이미지 설명을 입력하십시오

  • NuGet에서 프로젝트를 제거하고 교체하여 참조 라이브러리 오류를 개별적으로 수정했습니다!

희망이 다른 코드 여행자에게 도움이되기를 바랍니다 :-D


3
@DavidG 모든 프로젝트에 VS2015 분기가있는 것은 아니므로 시간 낭비가 아닙니다.
usr-bin-drinking

프로젝트의 폴더를 다시 보려면 솔루션 탐색기 도구 모음에서 "모든 파일 표시"를 클릭해야합니다. "점으로 표시"되어 표시되며 마우스 오른쪽 버튼을 클릭하고 각 항목을 선택한 다음 "프로젝트에 포함"을 선택하여 다시 설치해야합니다.
vapcguy

이것들은 내가 직면 한 문제들입니다.
Samra

14

@DavidG의 대답은 정확하지만 명령 줄에서 작성하는 경우 동등한 솔루션을 사용하여 적절한 버전 msbuild(이 경우에는 버전이어야 함)을 사용하는 것이 좋습니다 15).

실행 msbuild /?중인 버전 where msbuild을 확인 하거나 환경에서 실행 파일을 가져 오는 위치를 확인하고 필요한 경우 도구를 업데이트하거나 올바른 위치를 가리 킵니다.

여기 에서 최신 MSBuild 도구를 다운로드 하십시오 .


6

VSTS에서 .Net Core 2.0 앱을 빌드하려고 할 때이 오류가 발생하면 빌드 정의가 Hosted VS2017에이전트 큐를 사용 중인지 확인하십시오 .


.net 프레임 워크를 대상으로하지만 여전히 csproj 파일을 핵심 형식으로 생성하는 VS Azure Functions 프로젝트와 비슷한 문제가 있습니다. 이 수정은 저에게 효과적이었습니다.
ElliotSchmelliot 2016 년

3

powershell에서 msbuild 만 실행하는 동안 동일한 메시지가 나타납니다.

dotnet msbuild "./project.csproj" 나를 위해 일했다.


이것은 기본적으로 같은 대답 이 하나 . 최신 버전의 msbuild를 사용해야합니다.
DavidG

0

프로젝트가 크지 않은 경우

1- 폴더 프로젝트 이름 변경

2- 동일한 프로젝트로 새 프로젝트를 만듭니다 (이름 바꾸기 전)

3- 기존 프로젝트의 기존 파일을 새 프로젝트에 추가합니다 (완전히 동일한 폴더, 같은 이름 등).

4- 새 프로젝트 파일 (xml)과 이전 프로젝트를 엽니 다.

5- 새 프로젝트 파일 (xml content)을 복사하여 이전 프로젝트 파일에 붙여 넣습니다.

6- 오래된 프로젝트 삭제

7- 이전 폴더 프로젝트의 이름을 이전 이름으로 바꿉니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.