[asp.net-mvc] 프로젝트의 기본 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

닷넷 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대신 .NET Core가 사용 되었습니다 *.csproj. 그러나 Microsoft의 상당한 내부 심의 후에 그들은 csproj훨씬 더 깨끗하고 업데이트 된 형식으로 돌아 가기로 결정했습니다 . 그러나이 새로운 형식은 VS2017에서만 지원됩니다.

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


답변

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에서 프로젝트를 제거하고 교체하여 참조 라이브러리 오류를 개별적으로 수정했습니다!

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


답변

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

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

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


답변

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


답변

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

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


답변

프로젝트가 크지 않은 경우

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

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

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

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

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

6- 오래된 프로젝트 삭제

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


답변