Visual Studio 2012 또는 Visual Studio 2013에서 이전 MVC 프로젝트를 어떻게 열 수 있습니까?


152

MVC 3 또는 MVC 4로 업그레이드하지 않으려는 이전 ASP.NET MVC 2 프로젝트가 있습니다. Windows 8, Visual Studio 2012 및 Visual Studio 2013을 실행하는 새 컴퓨터에서 작업하고 있습니다. MVC를 열려고 할 때 VS 2012 또는 VS 2013의 2 프로젝트에서 오류가 발생합니다.

이 프로젝트는 현재 버전의 Visual Studio와 호환되지 않습니다.

그런 다음 솔루션 탐색기에서 프로젝트가 언로드되고 회색으로 표시됩니다. 다른 Visual Studio 사본을 설치하고 싶지 않습니다. 새 버전의 Visual Studio에서 이전 MVC 프로젝트를 어떻게 열 수 있습니까?


알고 있다면 왜이 질문을 했습니까?
브라이언 화이트

30
@BrianWhite 오늘 아침이 문제에 부딪쳤을 때 빠른 Google 검색을 수행했지만 아무 것도 찾지 못했습니다. VS 프로젝트 파일의 작동 방식에 익숙하기 때문에 원인과 잠재적 해결책에 대해 추측했습니다. 솔루션이 작동하는지 확인한 후에는 해당 지식을 공유하고 싶었습니다. Jeff의 지침에 따라 자신의 질문에 대답하고 확인하는 것이 좋습니다.
ahsteele

1
고마워, 난 몰랐어 내가 여기에서 찾는 사람을 보지 못해서 게시하지 않은 많은 것들이 있습니다.
브라이언 화이트

8
ahsteele, 솔루션을 게시 해 주셔서 감사합니다. 해결책이 발견되면 자신의 질문에 대답하면 커뮤니티에 지식이 추가됩니다.
pomarc

답변:


291

Visual Studio 2012 또는 Visual Studio 2013 에서 지원되지 않는 MVC 프로젝트를 여는 것은 실제로 두 단계로 쉽게 수행 할 수 있습니다. 실제로 bytebender의 주석이 나타내는 것처럼 이러한 동일한 단계 MVC 1 프로젝트에 적용되고 작동 해야 합니다. 그러나 나는 테스트하지 않았으므로 실제로 작동한다고 보장 할 수는 없습니다.

아직 수행하지 않았다고 가정하면 1 단계는 MVC 1 , MVC 2 또는 MVC 3 을 다운로드하여 설치 하는 것입니다 (설치를 시작하기 전에 Visual Studio를 닫으십시오).

적절한 MVC 버전을 설치 한 후에도 프로젝트는 VS 2012에서 계속로드되지 않습니다. 이는 ASP.NET MVC 프로젝트가 웹 응용 프로그램 프로젝트 유형 프로젝트 하위 유형 입니다. 이는 프로젝트에 Visual Studio 내에서 사용될 때 추가 기능과 기능을 사용할 수 있음을 의미합니다.

Visual Studio 2012와 Visual Studio 2013은 모두 ASP.NET MVC 및 기타 프로젝트 유형과의 하위 호환성으로 제한됩니다. 불행히도 이전 MVC 비트를 설치해도 변경되지 않았습니다. Visual Studio 2012는 ASP.NET MVC 3 및 ​​4 프로젝트 버전과 호환 됩니다.Visual Studio 2013은 MVC 4 및 MVC 5와 호환 됩니다.

프로젝트를로드하려면 프로젝트 파일을 수정해야합니다. 이렇게하려면 언로드 된 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 편집을 선택하십시오. 프로젝트 파일을 XML 텍스트 파일로 엽니 다. ProjectTypeGuids다음과 같은 노드를 찾으십시오 .

<ProjectTypeGuids>
    {F85E285D-A4E0-4152-9332-AB1D724D3325};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
</ProjectTypeGuids>

목록에서 적절한 프로젝트 안내서를 제거하십시오.

  • ASP.NET MVC 1 : {603c0e0b-db56-11dc-be95-000d561079b0}
  • ASP.NET MVC 2 : {F85E285D-A4E0-4152-9332-AB1D724D3325} (위의 예에 표시)
  • ASP.NET MVC 3 : {E53F8FEA-EAE0-44A6-8774-FFD645390401}
  • ASP.NET MVC 4 : {E3E379DF-F4C6-4180-9B81-6769533ABE47}

적절한 GUID를 제거하면 ProjectTypeGuids다음과 유사하게 나타납니다.

<ProjectTypeGuids>
    {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
</ProjectTypeGuids>

파일을 저장하고 Visual Studio 프로젝트 파일 편집기를 닫습니다. 프로젝트를 마우스 오른쪽 단추로 클릭하고 다시로드를 선택하십시오. 프로젝트가 다시로드되지 않으면 Visual Studio를 닫았다가 다시 엽니 다. 이제 새 버전의 Visual Studio에서 이전 ASP.NET MVC 프로젝트를 사용할 수 있습니다.

주목해야 할 중요한 사항 중 하나는 이러한 수정 후에 Visual Studio가 이것이 ASP.NET MVC 프로젝트라는 것을 인식하지 못한다는 것입니다. 따라서 "컨트롤러 추가,보기 등"과 같은 프로젝트 별 기능 메뉴에 없습니다.


11
이것은 MVC 1에서도 작동합니다. 프로젝트 파일을 편집 한 후 다시로드 할 수 없었습니다. Visual Studio를 닫았다가 다시 열어야했는데 MVC 1 프로젝트를로드 할 수있었습니다. 감사! +1
bytebender

1
우수한! 하나의 작은 추가로 나를 위해 일합니다 ... .cspproj에서 추가 projectTypeGuid가 있습니다 : {F85E285D-A4E0-4152-9332-AB1D724D3325}; 제거해야했습니다.
Kevin Won

2
@JookyDFW 마이그레이션 유틸리티의 문제점은 마이그레이션 유틸리티라는 것입니다 . 이 특정 프로젝트에 대한 질문에 열거되지 않은 이유로 MVC 2에서 업그레이드 할 수 없었습니다. 프로젝트를 업그레이드 할 수는 없지만 여전히 작업해야했습니다. VS 2012에서 MVC 2 프로젝트를 사용하는 가장 좋은 방법은 프로젝트 파일을
간략하게 수정하는 것입니다

3
@RyanShripat 전혀 경험이 아닙니다. 이전 버전의 ASP.NET MVC를 설치해야하지만 VS 2010은 위의 사항에 영향을 미치지 않습니다.
ahsteele

2
@Nanu 의견을 보내 주셔서 감사합니다. 제가 명심해야 할 것은 다음과 같습니다. " 주목해야 할 중요한 사항 중 하나는 이러한 수정 후에 Visual Studio가 이것이 ASP.NET MVC 프로젝트임을 인식하지 못하기 때문에 프로젝트 특정 기능입니다. "컨트롤러 추가,보기 등"은 메뉴에 나타나지 않습니다. "
ahsteele

4

@ahsteele의 접근법 (감사 및 2x + 1!)을 사용했지만 한 가지 더 오류가 있습니다.

.csproj : error : 작업을 완료 할 수 없습니다. 잘못된 클래스 문자열

그 실제 원인에 대한 인용을 찾을 수는 없지만 VS2012RTM이을 변경하여 프로젝트를 성공적으로로드 할 수있었습니다 <ProjectGuid>. (이런 일이 방법을 모르고 - 대형 솔루션의 그 부분은 VS08, VS10, VS11 베타 및 VS2012RC 모든 업그레이드하지 않은 .csproj.sln시간이 지남에 있습니다.


1

VS2017에서 해결책은 <ProjectTypeGuids></ProjectTypeGuids>그렇게 만드는 것 입니다.

신사 숙녀 여러분 사이에 공간이 없습니다. 그렇지 않으면 48 시간의 시간을 낭비하게됩니다.

문안 인사

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