2010-02-24 2 views
33

단일 Visual Studio (2008) 솔루션에 여러 프로젝트가 있습니다.Visual Studio 솔루션 파일의 프로젝트 GUID는 무엇에 사용됩니까?

Project("{FAE04EC0-F103-D311-BF4B-00C04FCBFE97}") = "Pro1", "Pro1\Pro1.csproj", "{...}" 
Project("{FAE04EC0-F103-D311-BF4B-00C04FCBFE97}") = "Pro2", "Pro2\Pro2.csproj", "{...}" 

들이 독특한이고 그들이 무엇을 사용 그래서 나는이 GUID를 변경해야합니까 :
나는 그냥 같이 보입니다 솔루션 파일에 있으므로 이러한 프로젝트의 각각은, 동일한 GUID를 사용하는 것을 발견 ?

+1

합니까 를 찾을 수 있습니까? – Ryu

+0

@ Ryu 만약 그렇다면 무엇을 의미합니까? –

답변

40

프로젝트 지속성 블록의 형식은 다음과 같습니다 그래서 처음 GUID는 고유하지 않은 것으로 예상됩니다

Project("{project type GUID}") = "<Project name>", "<project file location>", 
    "{<Unique project GUID>}" 
EndProject 

을, 그것은 고유의 프로젝트 유형을 처리하는 비주얼 스튜디오 패키지를 식별합니다.

게시 한 GUID가 재미 있습니다. FAE04EC0-301F-11D3-BF4B-00C04F79EFBC 인 C# 프로젝트 GUID가 엉망인 것처럼 보입니다. 직접 변경했거나 게시 문제 (예 : 히브리어 또는 아랍어와 같은 오른쪽에서 왼쪽으로의 로케일 사용)가 되었습니까?

+1

고마워요 올렉!솔루션마다 고유 할 것이라고 생각하여 GUID를 직접 변경했습니다. 나는 그 값들의 일부를 뒤집는 것보다 더 좋은 아이디어를 가지지 못했고 C# 프로젝트의 일반적인 가치라고 생각하지 않았습니다 :-) – Marc

+10

당신은 GUID를 암기 했습니까? – Seth

+18

@가요? ;) – sebagomez

3

csproj 파일의 프로젝트 GUID는 고유해야합니다. 내 경험에 비추어 볼 때 두 개의 csproj 파일이 동일한 솔루션에 포함되어 있으면 Visual Studio가 자동으로 GUID 중 하나를 재생성합니다. 솔루션 파일에

+0

VS와 Sharpdevelop 모두이 작업을 수행합니다. GUID가 변경된 프로젝트가 다른 곳의 다른 솔루션에서 참조되는 경우 의미를 숙지하십시오. 다른 솔루션의 sln 파일과 수정 된 프로젝트를 참조하는 다른 프로젝트 파일은 이전 GUID를 사용하며 프로젝트 참조가 중단됩니다. 쉽게 고칠 수 있지만 염두에 두어야 할 가치가 있습니다. 또한 VS가 처음에 있었던 프로젝트의 GUID를 바꿀 수도 있다는 것을 알고 있어야합니다. – andyhasit

14

대개 VS 프로젝트 파일을 복사하고 이름을 변경하며 프로젝트 이름의 모든 항목을 검색 및 바꾸어 동일한 설정으로 새 프로젝트를 만듭니다. 이는 새 프로젝트를 만든 다음 모든 설정이 올바른지 확인하는 것보다 빠릅니다. 나는 GUID를 무시한다. VS는 솔루션에 추가 한 후에 프로젝트를 저장하자마자 GUID를 변경합니다.

나는 많은 DLL/C/C++ 개발을하고 있으며 (특히 최적화, 코드 생성 등과 관련하여) 광범위하게 표준 프로젝트 설정에서 벗어 났으며 복사 기술을보다 빠르고 확실한 방법으로 찾았습니다. 프로젝트 설정하기. 현명한

+2

감사합니다. XML 파일을 편집하는 것은 클릭 할 곳과 열어야 할 메뉴 등을 기억하는 것보다 훨씬 쉽습니다. 텍스트 파일은 GUI 작업보다 훨씬 반복적입니다. – Bram

+2

프로젝트 속성 시트를 사용하여 대부분을 해결할 수 있습니다. 모든 최적화/코드 생성 등을 거기에 넣은 다음 각 프로젝트에 시트를 포함하십시오. –

1

말씀 일 : XBOX360 XNA 4.0 프로젝트를 만들고이 트릭을 시도하는 경우, 는 VS 2012에 의해 생성 된 GUID를 사용하지 마십시오. VS2010에서 하나를 생성하고 을 사용하십시오.

또는 XNA Game Studio Connect에서 re-guid'ed 프로젝트를 실행하려고하면 다음 오류가 발생합니다.

"이 게임은 없거나 손상 되었습니까? 예 : XNA Game Studio Connect를 다시 시작 하시겠습니까?"

그리고 나서 폭탄이 터집니다. VS 2010 guids는 잘 동작합니다. 나는 이유를 모른다.

+1

더 일반적으로 테스트를 더 진행하면 Visual Studio 2012에서 이름 자체가 끔찍하게 손상됩니다. 나는 이러한 기능을 위해 2010 년 또는 2013 년을 사용할 것입니다. – twobob