Visual Studio 경고 : "솔루션과 관련된 일부 속성을 읽을 수 없습니다"
솔루션을 열면이 경고가 표시된 대화 상자가 나타납니다. 솔루션 (하나의 웹 앱, 하나의 클래스 프로젝트)은 오류없이 빌드됩니다.
문제를 일으키는 속성을 어떻게 확인하고 오류를 해결할 수 있습니까?
35 개의 프로젝트가있는 VS2010 솔루션과 비슷한 문제를 방금 수정했습니다 ... 원인이 복제되었습니다.
GlobalSection(TeamFoundationVersionControl)
솔루션 파일의 섹션. 솔루션을 닫고 중복 GlobalSection (TeamFoundationVersionControl) 구성을 제거하고 솔루션을 다시로드했는데 경고 메시지가 사라졌습니다.
이것이 문제가 아닌 경우 2 개의 프로젝트 만 고려하면 파열 된 솔루션 파일을 버리고 새로운 솔루션을 만들고 두 프로젝트를 다시 추가하십시오 ...
이 경고에는 여러 가지 이유가있는 것 같습니다. SccNumberOfProjects = 4
3이 있었을 때 솔루션 파일 때문에 얻었습니다 .
가장 좋은 방법은 CONFIGS를 재생하기 위해 VS를 강제하는 것입니다. 이것을하기 위해:
- 텍스트 편집기로 sln 파일을여십시오.
- 마지막 "EndProject"요소에 도달 할 때까지 아래로 스크롤하십시오.
- 그 후 모든 것을 삭제하십시오.
- 솔루션을 저장하고 닫은 후 다시 빌드하면 모든 것이 재생성됩니다.
방금 VS2012에서 44 개의 프로젝트 로 비슷한 문제를 해결했습니다 .
원인은 중복 된 GlobalSection(TeamFoundationVersionControl)
섹션 (la Boycs의 답변) 의 조합 이었지만, GlobalSection(TeamFoundationVersionControl)
내가 유지 한 섹션 내에서 최근에 제거 된 프로젝트에 대한 참조뿐만 아니라 여러 프로젝트가 중복되었습니다 .
참조 된 모든 프로젝트가 내 솔루션의 실제 프로젝트와 1 : 1 일치한다는 것을 확인하면 경고가 사라졌습니다.
제쳐두고 : 나는 분기 및 커밋 병합 중에 .sln에주의를 기울여 이러한 문제의 대부분을 피할 수 있었을 것이라고 생각하지만 누가 VS가 때때로 생각하는지 알고 있습니다 ...
위의 오류가 많이있었습니다. 프로젝트 이름을 바꾸고 닫은 상태로 저장하고 다시 열면 이름이 변경되었습니다. 이것은 .sln 파일을 재생성하며 필자의 경우 모든 추가 항목을 제거했습니다.
Boycs의 리드에 따라 VS2012에서 동일한 오류 메시지가 해결되었습니다. 저에게있어 문제는 GlobalSection(SolutionConfigurationPlatforms) = preSolution
SLN 파일의 맨 아래에있는 두 개의 외부 블록 이었습니다 .
나에게 문제는 각 줄의 끝에 빈 공간 (복사 붙여 넣기 때문에)이었습니다. 그것들을 제거함으로써 나는 오류를 다시 얻지 못했습니다.
VS 2015에서 " GlobalSection (TeamFoundationVersionControl) = preSolution " 섹션 중 두 섹션이 있었습니다 .
첫 번째는 솔루션에 추가 된 최신 프로젝트를 포함하고 두 번째 프로젝트는 솔루션 파일의 끝 부분에 없었습니다. 두 번째 솔루션을 삭제하면 VS 2015에서 오류없이 솔루션이 열립니다.
다른 답변은 이미 문제를 해결하는 방법을 설명합니다. 어쩌면 나는 다시 문제를 해결하지 못할 수 있습니다.
문제 해결 방법 새 프로젝트를 추가 할 때 솔루션 파일이 혼동되는 반면 다른 개발자도 새 프로젝트를 추가하고 변경 사항을 커밋했습니다 (내 로컬 시스템에는 없었습니다). 변경 사항을 커밋하기 시작했을 때 .sln 파일을 병합해야했습니다.
내가 배운 것
솔루션 파일이 병합하기가 끔찍합니다. 프로젝트를 추가하는 경우 다음을 수행하십시오. 1. 최신 버전 얻기 2. 프로젝트 추가 3. 커밋
솔루션 파일이 보류중인 변경 사항 아래에 있지만 비교 모드에서 변경 사항이 표시되지 않으면 '모두 저장'을 눌러야합니다. 새 프로젝트를 추가하는 동안 VisualStudio도 솔루션을 변경했습니다. 그러나 이것은 현재 저장되지 않은 변경 사항입니다.
.sln 파일 에서 SccNumberOfProjects 를 확인하십시오 . 실제 프로젝트 번호와 다를 수 있습니다.
vs2012에서 비슷한 문제를 해결했습니다.
필자의 경우 문제는 MySolutionName.sln 파일의 GlobalSection 내의 SccProjectName0 속성 값이 비어 있다는 것입니다.
SccProjectName0 값을 다른 솔루션 에서이 문자열 값의 사본으로 설정하고 문자열의 프로젝트 이름을 현재 이름으로 바꾸는 것으로 해결했습니다 (BTW-프로젝트 이름이 공백으로 있으면 ( ''), '\ u0020'으로 대체하십시오).
*
내 경우에는 문제 가이 솔루션이 VSS에 의해 제어 된 시간과 동일한 솔루션의 오래된 MySolutionName.sln 파일을 사용하여 TFS에 의해 제어 된 솔루션을 실수로 연 후에 시작됩니다.
VS2015 업데이트 3. [GlobalSection (TeamFoundationVersionControl) = preSolution]이 솔루션 파일에 복제되었습니다. 맨 아래 복제본에는 이전에 제거 된 프로젝트가 포함되어 있으므로 해당 복제본을 제거하면 문제가 해결되었습니다. 중복은 이전의 병합 문제로 인해 발생했다고 생각합니다.
가능한 한 가지 추가 솔루션을 추가 할 수 있습니다. Dodgy merge는 GlobalSection (TeamFoundationVersionControl) 섹션 내의 SccProjectUniqueName / SccProjectName / SccLocalPath 스탠자 중 하나에 SccNumberOfProjects가 정확하더라도 고유하지 않은 숫자가 있음을 의미했습니다. 번호 매기기를 수정하고 오류 메시지가 사라졌습니다.
VS 2019-VS 2019에서 VS 2017 프로젝트를 처음으로 열었습니다. 출력 창에서 "출력 결과 :"DDL을 클릭하고 추가 오류 정보가 표시 될 수 있으므로 옵션을 검토하십시오.
필자의 경우 해결책은 2019의 소스 제어 매핑을 재구성하는 것입니다.
- 팀 탐색기로 이동
- 연결 관리 버튼을 클릭하십시오 (플러그).
- 연결 관리 링크를 클릭하고 프로젝트에 연결 ...을 클릭하십시오.
- ...
나는 같은 문제가 있었고 내 해결책은 다음과 같습니다.
- VS에서 솔루션 열기
- 솔루션 플랫폼을 기본값으로 설정
- Save it
- Close the VS
- Open the .sln file in Notepad++ (or any other editor)
- Delete all of the other Solution Platform item from everywhere
- (for example:{73E03C8F-1F76-45E2-9D45-FA040A63F0AA}.Release|Any CPU.Build.0 = Release|Any CPU)
- Save it, and reopen the solution.
This works for me.
'IT story' 카테고리의 다른 글
NSJSONSerialization 사용 방법 (0) | 2020.06.08 |
---|---|
UIScrollView contentInset 속성은 무엇입니까? (0) | 2020.06.08 |
다른 TypeScript 파일을 가져 오려면 어떻게합니까? (0) | 2020.06.08 |
UIView 서브 클래 싱에 대한 올바른 연습? (0) | 2020.06.08 |
Bash의 조건부에서 "아무것도하지 않는다"는 것은 어떤 명령입니까? (0) | 2020.06.08 |