Visual Studio가 어딘가에서 프로젝트에 대한 잘못된 경로를 검색합니다.


98

Visual Studio (그리고 아마도 TFS)는 내 솔루션 내의 프로젝트 경로에 대해 어떻게 든 (아마도 소스 제어 병합 중에) 혼란스러워집니다.

여기에 있다고 생각합니다 (단순함을위한 예제 경로).

C:\My Projects\ExampleSolution\ExampleProjectWrong\ExampleProjectCorrect.csproj

실제로 프로젝트 파일은 다음 위치에 있습니다.

C:\My Projects\ExampleSolution\ExampleProjectCorrect\ExampleProjectCorrect.csproj

나는 내 인생이 올바른 위치를 인식하지 못합니다. 나는 시도했다 :

  • 올바른 위치에서 프로젝트를 제거하고 다시 추가합니다. 라는 오류 메시지가 나타납니다 The project file at C:\My Projects\ExampleSolution\ExampleProjectWrong\ExampleProjectCorrect.csproj could not be found.

  • 모든 참조가 ExampleProjectCorrect.csproj올바른 경로 를 갖도록 .sln 파일을 수동으로 편집합니다 .

  • 올바른 경로와 잘못된 경로 모두에 대한 솔루션 디렉토리의 파일에서 찾기를 수행하여 Studio가 잘못된 경로를 숨기는 위치를 추적하고 추적합니다.

  • VS 및 TFS에 대한 캐시 디렉터리 삭제

100 개의 프로젝트에서 거의 차이가없고 여러 다른 개발자와 함께 소스 제어에 묶여 있기 때문에 솔루션을 다시 만들 수 없기 때문에 머리를 찢고 있습니다.

누구든지이 잘못된 경로를 저장하는 위치 및 / 또는이를 재설정하여 망할 일이 올바르게로드되도록 올바른 방향을 알려줄 수 있습니까?


그렇다면 프로젝트를 ExampleProjectWrong 디렉토리로 이동하면 어떻게 될까요?
Hans Passant 2011 년

좋아, 약간의 진행 .. 잘못된 폴더로 이동하면 Visual Studio에서로드 할 수 있습니다. 그러나 'ExampleProjectWrong'디렉토리는 동일한 폴더 구조를 포함하는 다른 프로젝트의 홈이므로 거기에 보관할 수 없습니다. 이제 프로젝트 경로를 변경하는 방법에 대한 아이디어가 있습니까? 언로드 된 프로젝트 속성의 경로 필드는 프로젝트가 언로드 된 경우에도 사용할 수 없습니까?
Charlie Drewitt 2011 년

3
두 번째로이 문제가 발생했지만 이번에는 다른 연결 문자열을 사용하기 때문에 분기 된 프로젝트가 원래 폴더를 대상으로한다는 것을 알 수있었습니다. 이것은 처음에는 매우 이상해서 visualstudio가 소스 폴더의 파일을 디버그하고 브랜치의 파일과 혼합하고 Log4net도 원래 폴더에 기록했습니다! 나요 솔루션 스오 파일을 삭제 하고 그것을 올바르게에만 분기 파일에 액세스합니다.
Binke 2013-12-04

2
나는 똑같은 문제가 있었다. suo 파일을 삭제하는 것만 큼 쉽지는 않았습니다. 1. 솔루션에서 문제가되는 프로젝트를 제거합니다. 2. 솔루션을 저장합니다. 3. .suo를 삭제합니다. 4. 솔루션을 열고 프로젝트를 다시 추가합니다.
SeanLAllen

1
SUO 파일을 삭제하는 것이 저에게 효과적이었습니다.
DanielV

답변:


96
  1. 작업 영역 관리로 이동합니다 (파일 / 소스 제어 메뉴 또는 소스 제어 탐색기의 작업 영역 드롭 다운을 통해).
  2. 작업 공간에 대한 편집 을 선택하십시오 .
  3. 작업 폴더 아래에 소스 제어 디렉토리가 이전 / 잘못된 프로젝트 디렉토리로 매핑되는 것을 볼 수 있습니다.
  4. 그것을 선택하고 제거를 클릭 합니다 .
  5. VS를 닫고 suo 파일을 삭제하십시오.

여전히 잘못된 디렉토리를 참조합니다. 이 시점에서 리 바인딩이 작동 할 수도 있지만 시도하지 않았습니다. 프로젝트를 다시로드하면 잘 될 것입니다.


1
또한 소스 제어 탐색기의 로컬 경로 링크에 속지 마십시오. 내 작업 공간에 대해 하나 이상의 매핑이 있었고 거기에서 예상했던 것을 보여 주었지만 프로젝트를로드하려고 할 때 다른 경로를 사용했습니다.
Benjamin Potts 2011

1
당신은 옵션 가능 "모든 파일을 표시하고 폴더"필요하므로 .suo 파일이 숨겨져
쪽빛 갈기

8
Visual Studio 2015에서 동일한 오류가 발생했습니다. 나를 위해 일한 것은 숨겨진 .vs 디렉토리와 .suo 파일도 삭제하는 것이 었습니다.
Daniel Leiszen 2015

5
VS2015의 경우 .suo파일이 생각하는 곳에 없을 수 있습니다. .sln파일 과 함께있는 파일 을 삭제하고 ( "숨겨진 파일 표시"를 잊지 마세요)에서 하위 디렉토리에 숨어있는 파일도 있습니다 .\.vs\[solution_name]\v14\.suo. 둘 다 얻은 후에는 프로젝트를 다시 추가 할 수 있습니다. 아차 - @DanielLeiszen에 부분 점수는 (단지 그가 같은 일 논평주의)
리처드 하우어

1
나는 .suo 파일을 삭제했다 우선하는 정신을 위해 VS를 다시 시작
Appulus

33

솔루션 .suo파일을 삭제하는 것만으로도 효과적 이었습니다.


5
VS2015에서는 삭제하기 전에 모든 Visual Studio 인스턴스를 닫아야 <SolutionDir>\.vs\<SolutionName>\<VsVersion>\.suo했습니다.
GraehamF

12

Visual Source Safe 2005에서 TFS 2012로 마이그레이션 한 후이 문제에 직면했습니다. 다음 몇 주 안에 "변환 마법사"가 나올 때까지 기다릴 수 없어서 방금 VSSConvert.exe를 실행했습니다. 이것은 6 년 정도의 역사가 걸렸고 TFS로 옮겼습니다. 실제 타임 라인 역사를 얻지 못했지만 .. 같은 날에 역사의 실제 체크인을 나타내는 코멘트와 함께 많은 항목을 받았습니다. . 나쁘지 않다.

그래서 밤새도록 실행 된 후 (성공적으로, 예!),이 질문에서 설명한대로 프로젝트를로드하는 데 문제가있었습니다. 어떤 이유로 일부 프로젝트가 잘못된 디렉토리를 참조했습니다. .sln, .vsproj 파일을 확인하고 최신 가져 오기, 다시 가져 오기 삭제, 제거 추가 등을 확인했습니다. 여기에 언급 된 모든 작업을 시도했습니다. 심지어 작업 공간을 업그레이드 했는데도 그게 뭔지 모르겠습니다.

드디어 ... * .suo 파일과 비올라를 삭제했습니다 . 효과가있었습니다.

나는 이것에 몇 시간을 보냈다.


2
* .suo 파일을 삭제하기 전에 모든 Visual Studio 인스턴스를 닫은 다음 솔루션을 다시여십시오.
Mas

5

약간 다른 솔루션입니다.

TFS가 특정 솔루션에 대해 존재하지 않는 경로를 표시했습니다. 이전에는 별도의 D : 드라이브가있는 노트북이 있었지만 지금은 C : 드라이브 만 있습니다. TFS는 여전히 내 프로젝트가 D : \ Project \ MikesProject에 저장되었다고 생각했습니다.

.suo삭제할 파일 이 없었고 , D : 경로 내 작업 공간 ( File\Source Control\Advanced\Workspaces메뉴 아래에 묻혀 있음) 어디에도 언급 되지 않았으며, TFS는 내 (더 이상 존재하지 않는) D에 최신 파일이 있음을 보여주었습니다. 디렉터리 및 VS2013의 TFS에는이 프로젝트에 대한 "매핑 제거"옵션이 없습니다.

그러나 작업은 단순히 프로젝트에 "최신 버전 가져 오기"를 수행했다.

그렇게 한 후 코드의 새 복사본이 내 C : 드라이브에 작성되었으며 (흥미롭게도) 이제 로컬 경로에 밑줄 이 표시되었습니다 .

이전에는 D : 경로가 이와 같이 표시되지 않았습니다.

이상한. 매우 이상합니다.


2
나에게 똑같은 상황. 잘못된 경로 때문에 방아쇠를 당기고 "최신 정보 얻기"를 주저했지만 @Mike가 용기를주었습니다!
Jonathan

2

이동 및 이름 변경과 관련하여 유사한 문제가 발생했습니다. 로컬 디렉토리를 삭제 한 다음 다시 해결했습니다.


2

.suo파일과 .vs폴더를 삭제 한 후에도 파일 을 수정 하고 정확함 에도 불구하고 .sln이전 상대 URL을 제거 해야했습니다. 분명히 VS는 이름을 힌트 경로로 사용합니다.SccProjectName#SccLocalPath#


1

.suo 파일 (확장자 포함)을 삭제하거나 이름을 바꾸십시오. 이 파일은 솔루션 파일이있는 동일한 위치에 있습니다. 그것은 나를 위해 일했습니다.


0

추측하지만 다른 프로젝트 중 일부가 잘못된 위치에서 프로젝트를 참조합니까? 이 경우 프로젝트를 삭제하고 솔루션에 다시 삽입 할뿐만 아니라 참조하는 프로젝트 (.csproj 파일에 저장 됨)에서 참조를 삭제하고 다시 만들어야합니다.


응답 해 주셔서 감사합니다. 프로젝트는 솔루션 내의 다른 프로젝트에서 참조되지 않습니다. 파일에서 찾기가 작동하지 않는 이유를 설명 할 수 있습니까? 내 경험상 '전체 솔루션'을 선택하는 대신 '찾아보기'에 대한 디렉토리 경로를 제공하면 특정 파일 유형 만 검색하도록 특별히 지시하지 않는 한 모든 파일 유형을 검색합니까?
Charlie Drewitt 2011 년

죄송합니다. 맞습니다. 솔루션 디렉토리가 아닌 솔루션의 파일에 대해서만 "파일에서 찾기"를 사용하고 있다고 생각했습니다. 그래서 작동합니다. 오류 메시지가 정확히 표시 될 때 더 자세한 설명을 제공 할 수 있습니까? 컴파일 할 때 발생합니까? 그래서 어떤 프로젝트 컴파일이 실패했는지 알 수 있습니까?
Doc Brown

0

많은 권장 사항을 시도한 후 suo 파일을 삭제했습니다 (다시). 마지막으로 일했습니다. 왜 일찍 작동하지 않았는지 모르겠습니다. 일반적으로 suo 파일을 삭제하는 것은 내가 수행하는 첫 번째 단계 중 하나입니다.


0

내 Dev Branch에서 내 asp.net 웹 사이트 솔루션을 열었습니다. 그런 다음 다른 목적으로 Main branch에서 동일한 솔루션을 열었습니다.

dev 브랜치의 .ascx.cs 파일 중 하나를 변경하고 중단 점을 설정했습니다. 디버거를 실행했을 때 메인 브랜치에 부딪히는 .ascx.cs를 제외하고 모든 브레이크 포인트가 Dev 브랜치에서 발생했습니다. 몰라.

임시 폴더 정리를 시도했지만 작동하지 않았습니다.

효과 :

Visual Studio의 모든 인스턴스를 닫았습니다.

Dev 브랜치에서 솔루션을 다시 열었습니다.

다시 달리면 브레이크 포인트가 치기 시작했습니다.


0

제 경우에는 * .sln 파일을 프로젝트 폴더에 복사하고 프로젝트 경로를 * .sln 파일로 변경했습니다. 이것만으로 문제가 해결되었습니다 (vs 2015 sp1, winservise 프로젝트).

* .suo를 삭제해도 도움이되지 않습니다.


0

또 다른 해결책이 우리를 위해 일했습니다-suo 와이 스레드에서 언급 된 거의 모든 것을 삭제 한 후에. 우리는 csproj 파일의 유령 버전을 보여주는 솔루션에 프로젝트가있었습니다. 해당 파일을 삭제하고 추가하려는 다른 프로젝트에서 경로를 수정했습니다.


-1

IISExpress 대신 로컬 IIS에서 웹 앱을 실행하는 경우 프로젝트 속성으로 이동하여 "가상 디렉터리 만들기"단추를 누르십시오. 완료되면 "솔루션 정리"및 "솔루션 다시 빌드"를 수행합니다.



-3

나는 그것이 오래된 선이라는 것을 압니다. 나는 같은 문제를 겪었습니다. 최근에 TFS를 마이그레이션했기 때문에 새 서버에 매핑 할 새 작업 영역을 만들고 이전 서버를 유지했습니다. 새 작업 공간을 대상으로하는 솔루션을 열 때마다 VS는 이전 작업 공간을 제거 할 때까지 항상 이전 매핑 디렉토리에서 프로젝트를로드하려고했습니다.


이것은 초기 질문에 대한 어떤 도움도 제공하지 않습니다
vlad_tepesch 2014

내 문제가 같은 성격이라고 생각했습니다. 두 개의 작업 공간이 있는데 그중 하나는 오래되었습니다. 나는 새로운 것 내에서 일하고 솔루션을 만들고 프로젝트를 추가했습니다. 솔루션을 닫지 않은 경우에만 모든 것이 좋습니다. 그러나 솔루션을 저장하고 열려고하면 VS는 항상 이전 작업 공간에 매핑 된 디렉터리에서 솔루션의 프로젝트를로드하려고했습니다.
BackToSorrento 2014
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.