[visual-studio] Visual Studio에서 다른 폴더로 프로젝트 이동
Visual Studio에서 프로젝트를 다른 폴더로 어떻게 이동합니까? 내 프로젝트 에서이 구조에 익숙합니다.
-- app
---- Project.Something
---- Project.SomethingElse
전체 네임 스페이스 SomethingElse의 이름을 SomethingNew로 바꾸고 싶습니다. 수동으로 .sln 파일로 이동하지 않는 가장 좋은 방법은 무엇입니까?
답변
솔루션 탐색기 창에서 마우스 오른쪽 버튼으로 클릭하고 제거를 선택하여 솔루션에서 프로젝트를 제거하십시오. 하위 디렉토리를 포함하여 전체 프로젝트 폴더를 원하는 곳으로 이동하십시오. 솔루션에 프로젝트를 다시 추가하십시오.
네임 스페이스 이름은 완전히 다른 것입니다. 소스 코드 만 편집하면됩니다.
답변
프로젝트를 제거하고 다시 추가하라는 제안을 시도했지만 종속성을 수정하는 것이 어려울 수 있습니다.
나는이 접근법을 사용한다 :
- 프로젝트 폴더를 이동하십시오.
- 프로젝트가 소스 제어에있는 경우 소스 제어 명령을 사용하여 이동하십시오.
- 텍스트 편집기에서 솔루션 파일을 편집하십시오. 변경해야 할 경로는 하나만 있어야합니다.
답변
- VS2012에서 솔루션을 닫으십시오
- 프로젝트를 새 위치로 이동
- 솔루션을 엽니 다
- 로드하지 못한 프로젝트를 선택하십시오
- 속성 도구 창에는 새 프로젝트 위치를 선택할 수있는 편집 가능한 “파일 경로”항목이 있습니다.
- 새로운 경로를 설정
- 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 다시로드를 클릭하십시오.
답변
나를 위해 일한 것은 다음과 같습니다.
- 솔루션에서 프로젝트를 제거하십시오.
- 텍스트 편집기로 프로젝트 파일을 편집하십시오.
- “패키지”에 대한 모든 상대 경로를 업데이트하십시오. 필자의 경우 프로젝트를 더 깊은 폴더로 옮긴 이후 로 변경
..\packages
해야했습니다..\..\..\packages
. - 프로젝트를 솔루션에 다시로드하십시오.
답변
나는 같은 문제가 있었다. 나는 참조를 변경하지 않고 참조를 이동하고 15 분 이내에 해결했습니다.
나에게 해결책은 간단했다.
- 필요한 곳으로 파일을 이동하십시오.
- 이름이 .vs 인 폴더를 삭제하십시오. 보이지 않는 폴더 여야합니다.
- note 또는 notepad ++와 같은 간단한 편집기를 사용하여 솔루션 파일 (.sln)을 엽니 다.
- 다음 구조를 사용하여 파일이있는 참조를 변경하십시오. 프로젝트를 같은 폴더에 넣으면 이전 폴더 또는 참조 “.. \”를 제거하십시오. 위의 폴더에 넣으면 참조 “.. \”또는 폴더 이름을 추가하십시오.
- 변경 사항이있는 파일을 저장하십시오.
- 프로젝트 파일 (.csproj)을 열고 동일한 작업을 수행하거나 참조를 제거하거나 추가하십시오.
- 변경 사항을 저장하십시오.
- 솔루션 파일을여십시오.
예 :
솔루션 파일 (.sln)
-
원본 :
Project ( “{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}”) = “PATH1.UI”, ” 스캐너 PDF \ PATH1.UI \ PATH1.UI.csproj”, “{A26438AD-E428-4AE4-8AB8-A5D6933E2D7B } “프로젝트 (“{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} “) =”PATH1.DataService “,” ScannerPDF \ PATH1.DataService \ PATH1.DataService.csproj “,”{ED5A561B-3674-4613-ADE5-B13661146E2E } “신규 :
Project ( “{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}”) = “PATH1.MX.UI”, “PATH1.MX.UI \ PATH1.UI.csproj”, “{A26438AD-E428-4AE4-8AB8 -A5D6933E2D7B} “프로젝트 (“{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} “) =”PATH1.DataService “,”PATH1.DataService \ PATH1.DataService.csproj “,”{ED5A561B-3674-4613-ADE5-B13661146E2E } “
프로젝트 파일에서 :
-
실물:
새로운:
원본 참조 :
…. \ lib \ RCWF \ 2018.1.220.40 \ TelerikCommon.dll새로운 참조 :
.. \ lib \ RCWF \ 2018.1.220.40 \ TelerikCommon.dll
답변
요약 : VS2019에서 git으로 이름 바꾸기 및 이동, git 기록 유지, R # 비트 활용, 자동 종속 프로젝트 참조 업데이트 (많은 프로젝트가있는 sln의 경우 200 이상)
Visual Studio 2019에서 C # 프로젝트의 이름을 바꾸고 이동하는 데 다음 단계를 사용했습니다.이 프로세스는 R #을 사용하여 네임 스페이스를 조정합니다. git 히스토리는 “git mv”를 수행하여 유지됩니다 (히스토리 추가 / 삭제 방지).
2 단계 : 1) 프로젝트 이름을 바꾸고 2) 프로젝트를 이동합니다.
( base2 다시 언로드 프로젝트의 팁을 사용 합니다.)
이름 바꾸기
- VS | 솔루션 탐색기 | 프로젝트를 마우스 오른쪽 버튼으로 클릭 | 이름을 바꿉니다 (예 : Utils.Foo에서 Foo로).
- VS | 솔루션 탐색기 | 프로젝트를 마우스 오른쪽 버튼으로 클릭 | 속성 | 어셈블리 이름, 기본 네임 스페이스 및 어셈블리 정보 필드 변경
- 해당 테스트 프로젝트 (예 : Utils.Foo.Tests)에 대해 1과 2를 수행하십시오.
- VS | 솔루션 탐색기 | 마우스 오른쪽 버튼으로 클릭 한 프로젝트 (생산 및 테스트) | 리 팩터 | 네임 스페이스 조정
- 프로젝트를 사용하는 XAML 파일을 수동으로 또는 적절한 전역 검색 및 교체로 업데이트해야 할 수 있습니다.
- 모두 다시 작성
- 범하다!! (이동하기 전에 변경 사항을 커밋)
참고 : Windows 탐색기의 폴더는이 시점까지 이전 이름으로 유지됩니다 (예 : Utils.Foo). 이동 단계에서 수정되었습니다.
움직임
이 방법은 1) git history를 유지하고 2) R #을 사용하여 네임 스페이스를 원자 적으로 조정하고 3) 종속 프로젝트를 일괄 업데이트합니다 (종속 sln 및 csproj 파일의 지루한 수동 편집은 피하십시오).
-
솔루션에서 모든 프로젝트를 언로드하십시오 (대상 프로젝트를 제거해도 종속 프로젝트의 변경 사항이 트리거되지 않도록 함)
VS | 솔루션 | 솔루션 아래에서 모든 솔루션 폴더를 선택하십시오. 프로젝트 언로드를 마우스 오른쪽 단추로 클릭하십시오.
-
git를 사용하여 폴더 이동 (이력이 유지됩니다)
a) 2019 년 개발자 명령 프롬프트 열기
b) 자식 상태 (“커밋 할 것이 없음, 작업 트리 정리”를 설명하기 위해)
c) 프로젝트 git mv 예 : git mv “C : \ Code \ foo \ foo \ Utils.Foo” “C : \ Code \ Foo”
d) 변경을 보거나 확인하기위한 자식 상태
- 프로젝트를 제거하다
VS | 솔루션 탐색기 | 프로젝트 선택 | 마우스 오른쪽 버튼을 클릭 | 제거 (모든 프로젝트가 언로드되므로 종속 프로젝트에서 해당 프로젝트에 대한 참조가 올바르게 제거되지 않음)
- 프로젝트를 다시 추가하십시오 (솔루션 탐색기의 트리에서 새 위치에).
a) VS | 솔루션 탐색기 | 대상 상위 폴더 선택 | 마우스 오른쪽 버튼을 클릭 | 추가 | 기존 프로젝트
- 모든 프로젝트를 새로 고침
중요 : 종속 프로젝트의 * .csproj 파일이 업데이트되었는지 확인하십시오.
(VS | 팀 탐색기 | 변경 | 나열된 종속 csproj를 두 번 클릭 | 프로젝트 참조 경로 변경 검사-확인)
- 이동 한 단일 * .csproj 파일에서 경로를 수동으로 수정
메모장 ++ (또는 다른 텍스트 편집기)를 사용하여 경로를 수정하십시오. 종종 간단한 검색 및 바꾸기 (예 : ../../../../에서 ../../)로 수행 할 수 있습니다.
이것은 업데이트됩니다 …
a) GlobalAssmeblyInfo.cs 참조
b) 패키지 경로
c) 종속성 유효성 검사 다이어그램 파일의 경로
d) 룰 경로에 경로 (예 <CodeAnalysisRuleSet>..\..\..\..\SolutionDependencyValidation\IgnoreWarnings.ruleset</CodeAnalysisRuleSet>
)
- 솔루션을 닫았다가 다시 엽니 다 (프로젝트 참조를 양호하게 만들기 위해)
모두 저장, 솔루션 닫기, bin 및 obj 폴더를 삭제하여 기록을 정리하고 솔루션 다시 열기를 선호합니다
- 확인
a) VS | 팀 탐색기 | 변경
i) 이동 한 파일을 공개하는 단계적 변경 사항이 표시되어야합니다. ii) 멋지게 업데이트 된 종속 프로젝트 (* .csproj)가 csproj diff를 검토하고 경로가 아름답게 업데이트 된 것을 확인해야합니다 !! (이것은 텍스트 편집기를 사용하여 csproj 파일을 수동으로 업데이트하는 것을 피하는 마술입니다)
b) Windows 탐색기에서 이전 위치가 비어 있는지 확인하십시오.
c) 솔루션 정리, 솔루션 재구성, 단위 테스트 실행, sln에서 앱 시작
- 범하다!!
답변
VS2012에서는 쉽습니다. 변경 매핑 기능을 사용하십시오.
- 솔루션을 이동할 폴더를 작성하십시오.
- 모든 프로젝트 파일을 체크인하거나 (변경 사항을 유지하려는 경우) 체크 아웃 된 파일을 롤백하십시오.
- 솔루션을 닫습니다.
- 소스 제어 탐색기를여십시오.
- 솔루션을 마우스 오른쪽 단추로 클릭하고 “고급-> 맵핑 제거 …”를 선택하십시오.
- “로컬 폴더”값을 1 단계에서 만든 값으로 변경하십시오.
- “변경”을 선택하십시오.
- 소스 제어 탐색기에서 솔루션을 두 번 클릭하여여십시오.