Visual Studio 복사 프로젝트


141

프로젝트 사본을 만들고 싶습니다. 파일과 참조 등을 추가하여 처음부터 시작하지는 않겠습니다. 배포 용 복사본을 의미하지는 않습니다. 그냥 일반 사본.

VS 에이 작업을 수행하는 도구가 있습니까? VS 2008을 사용하고 있습니다

답변:


144

사본을 원할 경우 가장 빠른 방법은 프로젝트를 저장하는 것입니다. 그런 다음 파일 시스템에 전체 내용을 복사하십시오. Visual Studio로 돌아가서 복사본을 엽니 다. 거기에서 프로젝트 / 솔루션의 이름을 바꾸어 같은 이름을 가지지 않는 것이 가장 좋습니다.하지만 가장 빠른 방법은 사본을 만드는 것입니다.


25
그렇다면 ProjectGUID는 어떻게됩니까?
Lars Corneliussen

4
svn 파일을 삭제하는 것을 잊지 마십시오 (있는 경우)-> weblogs.asp.net/jgalloway/archive/2007/02/24/…
qbantek

51
동일한 GUID를 가진 다른 프로젝트가 동일한 솔루션에 존재하는 경우 프로젝트 GUID는 VS에 의해 자동으로 업데이트됩니다.
Sebastian Krysmanski

3
에이미는 이것을 시도했지만 응용 프로그램 네임 스페이스의 이름을 바꾸지 않습니다. 내가 찾던 것이 아닙니다.
Jason

3
Community 2017 버전 15.8.4에서 VS가 프로젝트 GUID를 자동으로 업데이트하지 않습니다. 실제로 AssemblyInfo.cs가 소스 코드 제어에있는 경우 어떻게 될 수 있습니까?
PeterVermont

134

그냥 템플릿을 만들 ;

프로젝트에서 다음을 선택하십시오. 프로젝트-템플릿 내보내기

마법사를 통해 정의 할 수 있습니다

  • 템플릿 이름
  • 템플릿 설명
  • 미리보기 이미지

그런 다음 프로젝트를 '내 내보내기 템플릿'디렉토리에 압축합니다. 새 프로젝트를 만들 때 템플릿을 사용할 수있는 옵션도 있습니다.

템플릿을 사용하여 새 프로젝트를 만들면 모든 파일에서 네임 스페이스가 'your_new_project_name'에 대해 정확합니다. 모든 참조가 정확합니다.

.zip 파일을 다른 사람에게 보낼 수 있으며, .zip 파일을 Templates \ ProjectTemplates 디렉토리로 복사 (압축 풀지 않아야 함)해야합니다.

폴더, 레이아웃 페이지, 뷰 모델 등이 내가 좋아하는 방식으로 배열 된 ASP.NET MVC 템플릿을 만들었습니다.

참고 :
프로젝트에 빈 폴더가 있으면 템플릿에 추가되지 않으므로 각 폴더에 적합한 빈 클래스와 이미지 폴더의 샘플 그림을 추가했습니다.


28
최고의 답변.
fischgeek

14
VS2017에서 내보내기 템플릿은 프로젝트 최상위 메뉴 항목 아래에있었습니다.
Choco

3
이것은 매우 유용합니다. 전에 이것에 대해 어떻게 알지 못했습니까? 감사!
Aldarrion

5
이것이 정답입니다. 아주 쉽게! 이 프로세스는이를 Templates \ ProjectTemplates 폴더로 복사해야합니다. 프로젝트 생성 대화 상자에서 보려면 Visual Studio를 다시 시작해야했습니다.
midoriha_senpai

3
템플릿 을 가져 와서 새 프로젝트를 만들 때가되면 어떻게해야하는지 알 수 없었습니다. 새 프로젝트 대화 상자의 검색 창을 사용하여 템플릿을 찾아야한다는 것이 밝혀졌습니다.
Tawab Wakil

6

나는 이것이 당신이 자주하는 일이라면, 당신을 위해 그것을 약속하는 약간의 (무료가 아닌) 유틸리티가 있다고 생각합니다.

http://www.kinook.com/CopyWiz/

CodePlex에는 다음 프로젝트도 있습니다.

http://clone.codeplex.com/

아마도 코드 플렉스 프로젝트에 시도해보고 작동하지 않으면 수동으로 모든 이름을 바꾸고 sln 파일을 편집합니다.


codeplex 앱 "Solution Clone"은 꽤 잘 작동합니다. 모든 솔루션 파일을 복사하고 이름을 바꾸고 모든 참조를 유지합니다. 내가해야 할 유일한 일은 복사 된 솔루션을 연 후 이름이 바뀐 새 프로젝트 파일을 다시 가리킨 다음 프로젝트 속성에서 어셈블리 이름과 루트 네임 스페이스의 이름을 바꾸는 것입니다. 그래도 모든 것을 수동으로하는 것보다 훨씬 쉬웠습니다.
Fütemire

4

매우입니다 바람직하지 않습니다 다음은 몇 가지 설정 파일 내부 형상으로 형성하기 때문에 전혀 프로젝트를 복사 .csproj, .vspscc 등을 할 수있다 (그리고 대부분의 아마 것) 시스템의 이전 솔루션 '위치 및 기타 경로에 속하는 참조 점 / 위치 또는 TFS. 이러한 파일을 읽고 참조를 수정하는 데 전문가가 아닌 경우 프로젝트를 복사하지 마십시오.

복사하려는 것과 동일한 유형의 골격 프로젝트를 만들 수 있습니다. 이렇게하면 적절한 .csproj, .vspscc 파일 이 생성 됩니다. 이제 이전 프로젝트의 클래스 파일, 스크립트 및 기타 컨텐츠는 영향을받지 않으므로 자유롭게 복사 할 수 있습니다. 이를 통해 원활한 빌드 및 버전 제어가 가능해집니다 (관심있는 것으로 선택해야 함).

이 모든 것을 말했듯이 프로젝트를 단계별로 복사하는 방법을 알려 드리겠습니다.

  1. 솔루션 탐색기에서 복사하려는 프로젝트로 이동하여 마우스 오른쪽 단추를 클릭하십시오 .
  2. 이제 선택 ' 파일 탐색기에서 폴더 열기를 ' (당신이 당신의 디스크에 로컬 경로에 매핑 된 솔루션을 가정).
  3. 전체 폴더로 복제하려는 프로젝트를 선택하십시오 (모든 종속성과 함께 bin .vspscc 파일, .csproj 파일)
  4. 원하는 위치에 붙여 넣으십시오 (동일한 솔루션 폴더 또는 다른 솔루션 폴더 일 수 있습니다. 동일한 솔루션 폴더 내에 있으면 .csproj 및 기타 내부 파일의 이름을 새 이름으로 바꾸십시오) ).
  5. Visual Studio로 돌아 가지 말고 솔루션> 추가> 기존 프로젝트를 마우스 오른쪽 단추로 클릭하십시오.
  6. 찾은 위치에서 프로젝트 파일 (.csproj 파일)을 찾아서 선택한 후 ' 열기 '를 선택하십시오.
  7. 이 파일은 이제 작업 할 수 있도록 솔루션 탐색기에 나타납니다.

이제 중복 / 누락 된 참조 및 내용으로 몇 가지 빌드 오류를 해결해야 할 수도 있지만 예상대로 논리 및 구조에서 원시적입니다.


2
업데이트 : 2019 년 현재 가장 좋은 답변은 아래 @Shane의 답변입니다. VS 템플릿 만들기는 참조 문제없이 프로젝트를 복제하는 완벽한 방법입니다.
Vikram K

3

나는 다음 단계를 따르고 Resharper 라는 개발 도구를 사용합니다 .

그래서,

  1. 기존 프로젝트 폴더를 원하는 대상으로 복사
  2. 소스 제어로 이동하고 원하는 루트 폴더를 마우스 오른쪽 버튼으로 클릭하고 "폴더에 항목 추가 ..." 를 선택하십시오. 그러면 마법사가 복사 할 파일을 선택하도록합니다 (일부 파일 및 마법사는 기본적으로 이러한 이유로 안내합니다.
  3. 솔루션 파일 이름 변경 (* .sln)
  4. 존재하는 경우 서브 프로젝트 의 이름변경하십시오 .
  5. 사용 ReSharper에서이 바인딩을 변경하는 네임 스페이스의 이름을 국지적 다른 방법은 수동으로 새 이름으로 모든 네임 스페이스를 변경하는 것입니다 (I 자동 안전과 더러운 작업을 할 것입니다).
  6. 메소드 이름과 동일한 조치입니다.
  7. 변경하려면 솔루션 속성을 확인하십시오 .

그게 다야. 준비되었습니다 !!!


1

가장 좋은 방법은 새 프로젝트를 처음부터 새로 만든 다음 복사 할 프로젝트 파일 (프로젝트, form1, 폴더를 제외한 모든 것)이있는 폴더로 이동하는 것입니다. 파일 이름을 바꾸십시오 (form1 파일 제외) : Ch4Ex1 파일을 Ch4Ex2 프로젝트에 복사했지만 먼저 파일 이름을 Ch4Ex2로 바꿨습니다. 해당 파일을 복사하여 Visual Studio의 새 프로젝트에 대한 솔루션 탐색기에 붙여 넣습니다. 그런 다음 파일을 덮어 쓰기 만하면됩니다.

오래된 스레드이지만이 답변을 찾는 사람에게 도움이되기를 바랍니다.


0

소스 파일이 프로젝트 폴더 아래의 폴더에있는 프로젝트가 있습니다. 소스 폴더없이 프로젝트 폴더를 복사하고 복사 한 프로젝트를 열면 소스 파일이 누락되지 않지만 이전 위치에서 발견됩니다. 프로젝트를 닫고 소스 폴더도 복사 한 다음 프로젝트를 다시 열었습니다. 이제 프로젝트는 복사 된 소스 파일을 마술처럼 참조합니다 (새 경로가 "다른 이름으로 저장"에 표시되고 파일의 변경 사항이 복사 된 버전으로 저장 됨).

주의 사항 : 오래된 프로젝트 폴더와 새 프로젝트 폴더가 모두 사용 된 라이브러리 폴더 아래에 있지 않은 경우 위에서 언급 한 마술은 라이브러리에 대한 절대 참조도 삭제하고 동일한 상대 경로에서 라이브러리를 기대합니다.

VS Express 2012로 시도했습니다.


0

내 솔루션은 약간 다릅니다. 패키지가있는 컴퓨터가 죽어 다른 컴퓨터에서 다시 만들어야했습니다.

VS 2008에서 내가 한 일은 내 디렉토리에서 다음 파일을 여는 것입니다.

                  - <package name>.djproj
                  - <package name>.dtproj.user
                  - <package name>.dtxs
                  - <package name>.sln
                  - Package.dtsx

내가 이것을했을 때 팝업 창에 sln 파일이 새로운 솔루션이 될 것인지 물었고 '예'를 클릭하면 모든 것이 완벽하게 작동했습니다.


0

위의 솔루션을 시도하고 MVC 프로젝트의 사본을 만든 후

MVC 프로젝트의 경우 .csproj 파일에서 포트 번호를 업데이트하십시오. iis applicationhost.config의 도움을 받아 포트 번호를 확인할 수 있습니다. 동일한 포트 번호로 인해 IIS에서 어셈블리로드 문제가 발생합니다.


0

위의 Shane의 답변에 따라 (위대한 BTW 작동)…

참조 목록에 노란색 삼각형이 많이 나타날 수 있습니다. 이들 중 대부분은 Build->Clean Solution및 로 제거 할 수 있습니다 Build->Rebuild Solution.

좀 더 완고한 일부 Google API 참조가 발생했습니다.

동일한 버전의 NuGet 패키지를 다시 설치해도 작동하지 않습니다.
Visual Studio는 이미 설치했다고 생각합니다.

이 문제를 해결하려면 :
1 : 원본 버전을 적어 둡니다.
2 : 다음 상위 버전을 설치 한 다음 제거하십시오.
3 : 1 단계의 원본 버전을 설치하십시오.


0

프로젝트> 템플릿 내보내기가 옵션이 아닌 Visual Studio 2013을 사용합니다. 다음 은 프로젝트를 복제하는 데 사용하는 것입니다.

솔루션에서 : 파일> 템플릿 내보내기> 템플릿을 만들 프로젝트 선택, 경로 저장 참고

다운로드 2013 SDK VS를 설치 여기에

확장 성에서 새로운 VSIX 프로젝트 작성

VSIXManifest 대화 상자에서 자산 탭을 선택하십시오.

작성자 텍스트 상자를 채우십시오

유형으로 "프로젝트 템플릿"을 선택하고 찾아보기 템플릿을 추가하려면 찾아보기 (1 단계에서 적어 둔 경로에 저장)

VSIX 프로젝트를 저장하고 빌드하십시오. VSIX 프로젝트의 ... / bin / Debug 폴더로 이동하여 두 번 클릭하여 .vsix 파일을 실행하십시오.

Visual Studio의 새 인스턴스를 시작하면 템플릿이 어떤 프로젝트 유형이든 템플릿이 표시됩니다. 템플릿에서 새 프로젝트를 만듭니다.

dll 참조를 다시 추가해야합니다.


0

가장 쉬운 방법은 프로젝트를 템플릿으로 내보내고 기본 템플릿 위치에 저장하는 것입니다. 그런 다음 템플릿을 이동하려는 위치와 동일한 디렉토리에 템플릿을 복사하십시오. 그런 다음 새 위치에서 Visual Studio를 열고 새 프로젝트를 만들고 템플릿을 검색하라는 메시지가 표시됩니다. 템플릿 이름을 지정한 항목을 검색하고 선택하면 완료됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.