[개요]
프로젝트를 여러개 진행하다보면 개발 기간도 촉박하고 고객사가 제시하는 명확한 UI 디자인이 없는 경우가 허다하다.
그래서 기존 완료된 프로젝트의 인터페이스를 복사해와서 작업을 하는 경우가 있는데, 이럴 경우 솔루션과 프로젝트, 네임스페이스가 중구난방으로 섞여있어 오류를 뱉는 경우도 있고, 관리하기 어렵다.
Visual Studio 최근 문서 불러오기에서 솔루션 이름으로 프로젝트 파일을 여는것도 경로를 항상 확인해야해서 번거롭다.
이를 해결하기 위해 솔루션 - 프로젝트 - 네임스페이스를 통일화하는 작업을 진행해본다.
(단, 솔루션에 프로젝트가 다수 존재하거나, 프로젝트가 모듈화 되어있는 경우 솔루션 네임만 변경하는것을 추천한다.)
[문제 상황]
'솔루션의 프로젝트 중 하나 이상이 제대로 로드되지 않았습니다' 라는 문구는 현재 불러오는 .sln 파일의 내부 구조가 .csproj 파일 내부 경로와 일치하지 않거나 해당 경로에 파일이 존재하지 않아 발생된다.
[해결 방법]
기본적으로 파일 구조를 어느정도는 알아야 한다. 필자는 C#을 사용중이다. 대부분 Visual Studio로 사용되는 언어들은 구조가 비슷할 것이다. 먼저 .sln 솔루션 파일이 존재하고 .csproj 이라는 XML파일 형식의 파일이 존재한다.
sln 솔루션 파일을 뜯어보면 참조형식으로 되어있고 대부분 중요한 정보는 csproj 파일이 담고있다.
csproj 파일의 정의는 아래와 같다.
시스템 어셈블리에 대한 참조와 함께 프로젝트에 포함된 파일 목록을 포함하고 있다. 포함할 내용, 플랫폼 요구 사항, 버전 정보, 웹 서버 또는 데이터베이스 설정, 수행하는 작업 등 프로젝트를 빌드하는 데 필요한 모든 요구 사항을 정의합니다. |
그냥 대충읽어도 아 핵심파일이구나 라는 생각이 든다.
자세한 내용은 Microsoft에서 제공하는 문서에 명시되어 있다. 꼭 확인하자 (링크)
해결 순서를 공유한다.
위에도 언급했듯 솔루션 내에 프로젝트가 여러개거나 프로젝트가 모듈화 되어있는 경우 이름 변경에 신중해야 한다.
상황에 따라 변경하는 위치가 달라지니 기능을 확인하고 사용자에 맞게 적절하게 적용하는 것을 추천한다.
1. 솔루션 폴더에 있는 폴더와 해당 파일들의 이름을 변경한다.
oldName -> NewName으로 변경
2. .sln 솔루션 파일을 연결 프로그램 메모장으로 접근한다.
연결 프로그램에 메모장이 안보이는 경우에는 아단의 '다른 앱 선택' 으로 접근해서 메모장을 선택한다.
3. 해당 부분에서 변경되어야 하는 이름을 모두 변경해준다.
(참조되는 모든 경로를 수정하는 작업)
4. .csproj 확장자 파일을 동일한 방식으로 메모장으로 접근한다.
5. 해당 부분에서 변경되어야 하는 이름을 모두 변경해준다.
프로젝트 파일의 참조 현황이나 리소스에따라 항목이 늘어날 수 있다. oldName이 보이는곳은 모두 변경해주어야 한다.
6. 솔루션을 열어 네임스페이스를 변경한다.
7. 아무 cs파일이나 열어서 네임스페이스를 더블클릭 후 Ctrl + Shift + F 하여 찾기 및 바꾸기에 접근한다.
여기서 파일 바꾸기에 접근하면 '찾는 위치'를 조정하여 범위 내에 있는 모든 명칭을 한번에 변경할 수 있다.
[요약]
1. 솔루션 폴더 접근해서 .sln / .csproj / .user 파일 이름 통일화
2. sln 파일 메모장으로 열어 경로 수정
3. csproj 파일 메모장으로 열어 경로 수정
4. 솔루션 파일 열어 네임스페이스 통일화