프로젝트 폴더의 이름을 바꾸는 현재 솔루션은 다음과 같습니다.
- 솔루션에서 프로젝트를 제거하십시오.
- Visual Studio 외부에서 폴더 이름을 바꿉니다.
- 솔루션에 프로젝트를 다시 추가하십시오.
더 좋은 방법이 있습니까?
프로젝트 폴더의 이름을 바꾸는 현재 솔루션은 다음과 같습니다.
더 좋은 방법이 있습니까?
답변:
TFS 사용자 : 파일 / 폴더 이름 바꾸기 전에 경고해야하는 소스 제어를 사용 하는 경우 필요한 추가 단계를 다루는 대신이 답변 을보십시오 .
Visual Studio에서 프로젝트의 폴더 이름 , 파일 ( .*proj
) 및 표시 이름 을 바꾸려면
.sln
같은 다른 편집기에서 파일을 직접 열고 대신 경로를 업데이트하십시오. (TFS 등에서 먼저 솔루션을 체크 아웃해야 할 수도 있습니다.)참고 : 솔루션에서 프로젝트를 제거한 다음 다시 추가하는 다른 제안 된 솔루션은 프로젝트 참조를 손상시킵니다.
이러한 단계를 수행하면 다음과 같이 이름을 바꾸는 것도 고려할 수 있습니다.
또한 다음 어셈블리 속성 값을 수정하십시오 .
AssemblyProductAttribute
AssemblyDescriptionAttribute
AssemblyTitleAttribute
* .sol, * csproj 파일을 사용하여이를 수행하는 다른 방법이 있습니다.
* .sol 파일과 관련하여 다음과 같습니다.
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Shani.Commands.Impl", "Shani.Commands.Impl\Shani.Commands.Impl.csproj", "{747CFA4B-FC83-419A-858E-5E2DE2B948EE}"
예를 들어 첫 번째 부분을 새 디렉토리로 변경하십시오.
Impl\Shani.Commands.Impl\Shani.Commands.Impl.csproj
물론 전체 프로젝트를 해당 디렉토리로 옮기는 것을 잊지 마십시오.
이것은 Visual Studio 2015에서 간단 합니다 (이전 버전에서 작동 할 수 있음)
.sln
파일을 편집하고 csproj의 경로 (예 : →) 를 변경하십시오 .fu\bar.csproj
bar\bar.csproj
이봐, 난 고투했다. 불행히도 Visual Studio에는 원 클릭 솔루션이 없지만 Visual Studio 2012를 실행 중이고 Team Foundation Server를 사용하여 프로젝트를 소스 제어 하는 경우 소스 히스토리를 유지하면서 작동시키는 방법은 다음과 같습니다.
(5-10 단계를 건너 뛸 수 있다는 점에 유의하면서 아래 @mjv의 주석을 읽으십시오)
위의 가이드가 나를 위해 일했습니다. 그래도 문제가 해결되지 않으면 로컬 솔루션을 완전히 삭제하고 작업 영역에서 폴더 매핑을 제거하십시오. 만약을 대비하여 Visual Studio를 다시 시작하십시오. 실제로 컴퓨터에서 전체 솔루션을 삭제했는지 확인하십시오. 이제 작업 공간에 대한 솔루션 매핑을 읽고 최신 버전을 얻으십시오. 이제 위의 단계를 시도하십시오. 위의 단계를 수행하는 동안 문제가 발생하는 경우에도 마찬가지입니다. 솔루션을 로컬에서 삭제하고 최신 소스를 얻으면 작업 할 수있는 공간이 생깁니다.
여전히 문제가 지속되면 위의 단계를 시도하기 전에 솔루션 파일에서 수동으로 변경하거나 다른 '트릭'을 시도하지 않았는지 확인하십시오. 무언가를 변경하고 체크인 한 경우 프로젝트 이름 변경을 시작하기 직전의 시점으로 롤백을 고려할 수 있습니다.
물론 솔루션 탐색기에서 프로젝트 자체의 이름을 바꾸고 싶을 수도 있습니다. 위의 단계 전에이 작업을 수행 할 수 있지만이 경우 위의 단계를 적용하기 전에 해당 변경 사항을 확인하십시오. 나중에 수행 할 수도 있지만 솔루션 탐색기에서 프로젝트 이름을 바꾸기 전에 먼저 위의 모든 단계를 수행하고 변경 사항을 확인하십시오. 솔루션 탐색기에서 위의 단계를 프로젝트 이름의 이름으로 혼합하지 않는 것이 좋습니다. 그래도 작동 할 수도 있지만 2 개의 개별 변경 세트에서 수행하는 것이 좋습니다.
VS2012
! 당신이 단계 5-10을 피할 수 있습니다 (즉, 소스 제어에서 이름을 변경 한 폴더를 다시 가져올 필요) 내에서 폴더를 대신, 당신은 닫으면 솔루션을 누른 다음 이름 바꾸기 VS' Source Control Explorer
보다는 Windows Explorer
.
Folder already exists
. 따라서 폴더의 이름을 다시 바꾸고에서 WE
변경 SCE
한 다음 파일을 해당 폴더에 복사하십시오. 따라서 위 mjv의 의견을 따르십시오. 또한 나중에 VS 에서이 아닌 실제 프로젝트 파일 이름을 변경 하여이 단계 중 일부를 반복하게 만들 필요가 있다고 생각하지 않았습니다.
더 간단한 해결책은 다음과 같습니다.
4 단계가 필요하지만 7 단계가 권장됩니다. 하루가 끝나면 프로젝트의 이름이 완전히 바뀝니다. 기술적으로 프로젝트의 폴더 이름은 프로젝트 자체와 일치하지 않아도되므로 해당 단계조차 선택 사항이지만 일치하지 않으면 혼동 될 수 있습니다. 어셈블리 및 네임 스페이스 이름에 대해서도 동일합니다.
에서 andersjanmyr의 대답 먼저 프로젝트의 이름을 변경하는 것이 더 쉽습니다.
또한 이러한 단계를 수행 한 후에 다른 프로젝트 이름을 이전 프로젝트 이름으로 바꾸고 싶을 수도 있습니다.
프로젝트 속성에서 어셈블리 이름 및 기본 네임 스페이스를 업데이트하십시오.
이것은 프로젝트 파일에서 다음을 업데이트합니다 ...
<RootNamespace>SomeProjectName</RootNamespace>
<AssemblyName>SomeProjectName</AssemblyName>
... "네임 스페이스가 파일 위치와 일치하지 않습니다. 'SomeProjectName'이어야합니다."오류를 제거합니다.
루트 네임 스페이스의 이름을 바꿉니다 (ReSharper가있는 경우 네임 스페이스를 마우스 오른쪽 단추로 클릭하고 리 팩터-> 이름 바꾸기로 이동).
AssemblyInfo.cs 에서 이전 프로젝트 이름을 모두 변경하십시오 .
Visual Studio 2017의 경우 Visual Studio 확장을 사용할 수 있습니다.
다음과 같이 프로젝트 이름이 바뀝니다.
[assembly: InternalsVisibleTo("MyTests")]
. 내가 이름을 바꿀 때 MyTests
, 그 참조의 이름을 변경하지 않았다. 다시 말하지만, 이것이 귀하의 생각에 속하지 않으며 수동으로 쉽게 해결할 수 있다고 생각합니다.
Visual Studio + Git을 사용하고 파일 기록을 유지하려는 경우 (프로젝트 및 / 또는 솔루션의 이름을 바꾸는 작업) :
Visual Studio 닫기
.gitignore 파일에서 이름을 바꾸려는 프로젝트의 모든 무시 경로를 해당 경로의 이름이 바뀐 버전으로 복제하십시오.
다음과 같이 Git move 명령을 사용하십시오 :
git mv <old_folder_name> <new_folder_name>
추가 옵션에 대한 설명서를 참조하십시오 : https://git-scm.com/docs/git-mv
.sln 파일에서 : 프로젝트를 정의하는 행을 찾고 경로에서 폴더 이름을 변경하십시오. 줄은 다음과 같아야합니다.
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "<Project name>", "<path-to-project>\<project>.csproj"
Visual Studio를 열고 프로젝트를 마우스 오른쪽 버튼으로 클릭 → 이름 바꾸기
그런 다음 네임 스페이스의 이름을 바꿉니다.
나는 읽었 ReSharper에서는 이에 대한 몇 가지 옵션이 있습니다. 그러나 간단한 찾기 / 바꾸기가 나를 위해 일했습니다.
오래된 .gitignore 경로를 제거하십시오.
그것은 나를 위해 일했다.
Visual Studio 2017에서 나를 위해 일한 것 :
" 프로젝트 다시 추가 "와 같은 내용 입니다. 나는 모든 것을 재건했고 모든 것이 좋았습니다.
Dependencies
>> Add reference
>> 새 프로젝트 선택) )
나는 이것을 여러 번해야했다. 기존 프로젝트의 용도를 바꿀 수는 있지만 네임 스페이스, 파일 및 폴더 (파일 / 디렉토리 이름 포함)의 텍스트 이름을 바꿀 수 있으면 정말 유용합니다.
루트 폴더에서 시작하여 재귀 찾기 및 바꾸기를 사용하면 이름 바꾸기로 인해 솔루션 파일 및 프로젝트 참조의 프로젝트에 대한 링크가 끊어지지 않습니다.
이를 위해이 작업을 수행하는 프로젝트를 만들었습니다. 이 응용 프로그램은 또한 .git, .svn 및 .vs 설정 파일과 같은 버전 제어 폴더를 무시하려고 노력합니다. 추가 정보는 README에 있습니다.
비즈니스 인텔리전스 데이터 도구 (SSDT-BI 2013)를위한 Visual Studio 확장을위한 입증 된 솔루션 :
100 % 테스트를 거쳤으며 필자의 경우 완벽하게 작동했습니다.
참고 : 다른 프로젝트 템플릿 및 다른 Visual Studio 버전에서 작동하는지 확인할 수 없습니다. 항상 그렇듯이 모든 것을 미리 백업하십시오.
이 모든 단계를 자동화하는 작은 도구를 작성했습니다. 또한 현재 Subversion 도 지원합니다 .
현재 릴리스에 대한 정보는 Visual Studio Project Renamer Infos 에서 찾을 수 있습니다 .
최신 릴리스는 이제 Visual Studio Project Renamer 다운로드 페이지 에서 다운로드 할 수 있습니다 .
의견을 보내 주셔서 감사합니다.
Visual Studio에서 프로젝트의 이름을 바꾸고 폴더 이름, 프로젝트 이름 및 .sln 파일을 편집하는 것과 동일한 문제가 발생했습니다. 방금 모든 것을 수행 하는 VBScript 스크립트를 작성했습니다 . 교체 할 문자열을 신중하게 선택해야합니다.
.vbs 파일을 솔루션의 .sln 파일과 같은 디렉토리에두면됩니다.
' Script parameters'
Solution = "Rename_Visual_Studio_Project" '.sln'
Project = "Rename_Visual_Studio_Project" '.csproj'
NewProject = "SUCCESS"
Const ForReading = 1
Const ForWriting = 2
Set objFso = CreateObject("Scripting.FileSystemObject")
scriptDirr = objFso.GetParentFolderName(wscript.ScriptFullName)
' Rename the all project references in the .sln file'
Set objFile = objFso.OpenTextFile(scriptDirr + "\" + Solution + ".sln", ForReading)
fileText = objFile.ReadAll
newFileText = Replace(fileText, Project, NewProject)
Set objFile = objFSO.OpenTextFile(scriptDirr + "\" + Solution + ".sln", ForWriting)
objFile.WriteLine(newFileText)
objFile.Close
' Rename the .csproj file'
objFso.MoveFile scriptDirr + "\" + Project + "\" + Project + ".csproj", scriptDirr + "\" + Project + "\" + NewProject + ".csproj"
' Rename the folder of the .csproj file'
objFso.MoveFolder scriptDirr + "\" + Project, scriptDirr + "\" + NewProject
참고 :이 수정 프로그램은 Visual Studio 2008 용이지만 여기서 작동합니다.
.sln
상위 폴더에 있는 파일을 삭제하십시오 ..sln
파일 변경 사항을 저장할 것인지 묻는 대화 상자가 나타납니다 . 를 클릭하십시오 Yes..sln
파일 이름이 폴더와 같은지 확인하십시오 . 필수는 아니지만 일관성을 유지합니다.)끝난.
최근에 무료 Visual Studio 확장 프로그램 베타 버전을 업로드했습니다.
Visual Studio Gallery : Gallery 다운로드 살펴보기
텍스트 편집기에서 .sln을 열고 다음 줄에서 <FolderName>을 새 폴더 이름으로 변경하십시오. Project ( "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ricky", "\ .csproj", " {021CC6B0-8CFB-4194-A103-C19AF869D965} "
폴더 이름을 변경 한 후 메모장 에서 .sln 파일을 열고 경로를 새 경로로 변경하십시오.
새 프로젝트를 만들어야하고 프로젝트 이름과 다른 프로젝트 폴더 이름을 원할 때 비슷한 문제가 발생합니다.
새 프로젝트를 만들면 프로젝트가 저장됩니다
./path/to/pro/ject/YourProject/YourProject.**proj
ject
폴더에 직접 넣고 싶다고 가정 해 봅시다 .
./path/to/pro/ject/YourProject.**proj
이 작업을 수행하는 해결 방법은 경로의 마지막 부분을 이름으로 사용하여 프로젝트를 작성하여 추가 디렉토리를 작성하지 않는 것입니다.
./path/to/pro/ject/ject.**proj
이제 Visual Studio 내에서 프로젝트의 이름을 바꾸면 Visual Studio를 떠나지 않고도 목표를 달성 할 수 있습니다.
./path/to/pro/ject/YourProject.**proj
이 방법의 단점은 기본 네임 스페이스와 출력 바이너리의 이름도 조정해야하며 프로젝트 템플릿에 포함 된 모든 파일에서 네임 스페이스를 업데이트해야한다는 것입니다.
Visual Studio 2013 및 TFS 2013을 사용합니다.
나는 이렇게했다 :
Visual Studio 2013 업데이트 1에서 테스트되었으며 TFS 연결 프로젝트에 적용 할 수있는 더 간단한 접근 방식이 있습니다.
가장 간단한 방법은 창의 속성으로 이동하여 기본 네임 스페이스의 이름을 변경 한 다음 이름 바꾸기를 수행하는 것입니다.
나는 다음을 수행했다.
<전체 폴더의 백업 생성>
Visual Studio 2013 내에서 프로젝트 이름을 바꿉니다 (선택적 / 필요하지 않음).
프로젝트를 템플릿으로 내 보냅니다.
솔루션을 닫습니다.
솔루션을 다시여십시오
저장된 템플릿에서 프로젝트를 생성하고 원하는 이름을 사용하십시오.
솔루션 탐색기에서 이전 프로젝트를 삭제하십시오.
이 시점에서 나는 새로운 솔루션을 컴파일하려고 시도했으며, 그렇게하기 위해 이전 프로젝트 폴더에서 새로운 프로젝트 폴더로 일부 리소스와 헤더를 수동으로 복사해야했습니다. 오류없이 컴파일 될 때까지이 작업을 수행하십시오. 이제이 새 프로젝트는 " .exe"파일을 이전 폴더에 저장했습니다. *
그래서->
Windows 탐색기로 이동하여 솔루션 파일을 이전 프로젝트 폴더에서 새 프로젝트 폴더로 수동으로 복사하십시오.
솔루션을 닫고 새 프로젝트 내에서 솔루션을여십시오.
필요한 경우 구성을 다시 (x64)로 변경했습니다.
솔루션의 폴더에서 이전 이름의 프로젝트 폴더를 삭제하십시오.