program tip

Visual Studio 2012가 vs2010 솔루션을 변환하지 않습니까?

radiobox 2020. 11. 6. 08:03
반응형

Visual Studio 2012가 vs2010 솔루션을 변환하지 않습니까?


vs2012로 vs2010 솔루션을 열었지만 2008 년에서 2010 년까지 진행 중이므로 변환이 이루어지지 않았습니다. 그래서 내 솔루션은 여전히 ​​10 레이블과 동일하게 유지됩니다. 새로운 솔루션을 만들 때 당연히 11 개의 레이블이 있습니다. 그렇게 달리는 데 아무런 문제가 없지만 궁금합니다. 차이가 있습니까? 그렇다면 vs2012 솔루션으로 변환하는 방법은 무엇입니까?


몇 가지 예외 가 있지만 대부분 VS2012 및 VS2010 SP1에서 동일한 프로젝트 및 솔루션 파일 파일을 열 수 있습니다.

VS2012 프로젝트를 처음 열 때 프로젝트를 변환 할 수 있지만 변경 사항은 VS2010과 역 호환됩니다 (링크 된 문서에 언급 된 경우 제외) (즉,로드 될 때 두 버전 중 하나에 만 적용해야하는 조건문 사용) 대부분의 프로젝트 유형은 완전히 변경되지 않은 상태로 유지됩니다. .


솔루션 파일을 '변환'하여 .SLN 파일에서 '# Visual Studio 2010'이 포함 된 줄을 '# Visual Studio 2012'로 변경했습니다.


솔루션 파일의 수동 편집은 필요하지 않거나 권장되지 않습니다. VS2012에서 VS2010 솔루션을 열고 솔루션 탐색기 맨 위에있는 솔루션을 마우스 왼쪽 단추로 클릭 한 다음 파일 | 원본 파일을 덮어 쓰려면 다른 이름 으로 저장 합니다. 이렇게하면 VS2010 솔루션 파일이 VS2012 솔루션 파일로 효과적으로 변환됩니다.


Visual Studio 2012 호환성에 관한 것입니다.

서비스 팩 1 (SP1)이 포함 된 Visual Studio 2010에서 자산을 만든 경우 많은 자산이 추가 작업없이 Visual Studio 2012에서로드되고 실행됩니다.

Visual Studio 2012에서 해당 자산을 연 후에도 많은 자산이 문제없이 Visual Studio 2010 SP1에서 다시 열립니다.


C ++ 프로젝트의 경우 2012 컴파일러 (VC11)가 명시 적으로 2012 인 프로젝트에서만 사용되며 VS 2012에서 열린 2010 프로젝트 에서는 사용되지 않기 때문에 차이가 있습니다 . 일부 C ++ 11 개선 사항은 VC11 컴파일러에서 사용할 수 있지만 다음을 포함하는 VC10 ( 요약 은이 SO 응답 참조 ) :

VS 2010 프로젝트에서 VS2012로 변환하기 위해 솔루션 파일을 수동으로 편집하거나 기존 프로젝트 위에 '다른 이름으로 저장'할 필요가 없습니다 . 대신 :

처음 메시지가 표시 될 때 업데이트를 거부하는 경우 나중에 프로젝트 메뉴 를 열고 VC ++ 프로젝트 업데이트 ...를 선택 하여 프로젝트를 업데이트 할 수 있습니다. [메뉴 옵션 상단에서]

MSDN의 " 방법 : Visual C ++ 프로젝트를 Visual Studio 2012로 업그레이드 "
(이 페이지는 @Joachim의 MSDN 링크 에서 링크 되었지만 다른 답변이이 VS 2012 대신 수동 해결 방법을 제안했기 때문에 여기에 대답을 원했습니다.) 특색)


제 경우에는 Visual Source Safe 항목이있었습니다 (제 프로젝트는 Visual Studio 2003/2005로 만들었습니다. 예, 아주 오래되었습니다!).

VSS 항목을 수동으로 제거하면 변환이 성공했습니다. 추신 : VS2010에 관한 것이지만 다른 사람들에게 도움이 될 수도 있습니다.


다음을 수행하여 프로젝트를 VS2010에서 VS2012로 변환 할 수 있습니다.

  1. 솔루션 탐색기에서 솔루션을 마우스 오른쪽 단추로 클릭하고 추가-> 기존 프로젝트 ...를 선택하여 2010 프로젝트를 VS2012 솔루션에 추가합니다.

  2. 프로젝트가 솔루션에 나타나고 이름에 (Visual Studio 2010)이 추가됩니다.

  3. 추가 된 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택합니다.

  4. 구성 속성-> 일반 창에서 플랫폼 도구 집합 필드의 설정을 Visual Studio 2012 (v110)로 변경합니다.

  5. 각 구성 유형 (예 : 릴리스 및 디버그)에 대해 반복합니다.


특정 문제에 대한 솔루션을 검색하는 동안이 질문을 받았습니다. MSBuild는 명령 줄 (특히 TeamCity를 통해)에서 호출 될 때 VS2010에서 시작된 VS2012 솔루션에 대해 게시 대상을 실행하지 못했습니다.

error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Windows Azure Tools\2.3\Microsoft.WindowsAzure.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.

MSBuild는 VS10 위치 (C : \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Windows Azure Tools \ 2.3 \ Microsoft.WindowsAzure.targets)에서 Azure SDK 2.3 대상을 찾고있었습니다. 원인은 Sayed Ibrahim Hashimi가 블로그 게시물 에서 설명했으며 , 제가 ​​이해 했듯이 솔루션 파일에 대한 버전 간 호환성을 활성화하면서 내린 몇 가지 결정으로 요약됩니다. 해결책은 간단했습니다. 다음과 같이 VisualStudioVersion 속성을 MSBuild 호출에 추가합니다.

msbuild.exe MyAwesomeWeb.sln /p:VisualStudioVersion=11.0

실제로 이것은 각 csproj 파일에서 다음을 재정의합니다.

<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>

10.0을 11.0으로 대체하기 위해이 모든 것을 손으로 편집하여 동일한 결과를 얻을 수 있지만 이전 버전과의 호환성이 깨질 수 있습니다. 또한 문제가 지속되는지 확인하기 위해 VS2013에 대한 업데이트를 시도하지 않았습니다.

따라서 질문에 답하여이를 마무리합니다. 예, "변환"하기 전에 (다른 응답자가 제공하는 방법을 사용하여) 몇 가지 차이점이 있으며 그 후에도 일부 차이점이 남아 있습니다.


이것은 약간 다르지만 동일한 라인을 따라 누구에게나 도움이 될 수 있습니다.

로드중인 것처럼 보이는 프로젝트를로드 한 다음 모든 프로젝트를 사용할 수없는 것으로 계속 표시했습니다. 마이그레이션 보고서에 오류가 없습니다. 여기 제안을 포함한 다양한 방법을 사용하여 솔루션과 프로젝트를 여러 번 다시로드 해 보았습니다.

마지막으로 솔루션 탐색기에서 솔루션을 마우스 오른쪽 단추로 클릭하면 "오류 해결"옵션을 찾았습니다. VS는 다시로드 프로세스를 거쳤고 작동했습니다. 아무 문제 없습니다.

그 당시에 무엇이 달라 졌는지는 모르겠지만 분명히 차이를 만들었습니다.


.sol 파일을 편집하여 버전을 11로 변경하는 것입니다.

이렇게

Microsoft Visual Studio 솔루션 파일, 형식 버전 12.00

Visual Studio 2012

참고 URL : https://stackoverflow.com/questions/12095339/visual-studio-2012-doesnt-convert-vs2010-solution

반응형