2009-04-03 7 views
5

마이크로 소프트가 새 버전의 비주얼 스튜디오를 출시 할 때마다 항상 솔루션과 프로젝트 파일을 '최신 버전'으로 변환해야합니다. "Hello World"솔루션처럼 단순한 것조차도 변환 마법사를 통과해야합니다.오픈 소스 비주얼 스튜디오 프로젝트 배포 악몽

그리고 새로운 비주얼 스튜디오 솔루션 파일은 이전 버전의 비주얼 스튜디오와 호환되지 않습니다.

사람들의 그룹과 협력하고있는 누군가 또는 프로젝트를위한 소스 코드 배포를 원하는 사람에게는 악몽 일 것입니다.

Visual Studio 프로젝트를 배포하고 이전 버전의 Visual Studio를 사용하는 사람들이 계속 사용할 수있는 좋은 방법이 있습니까? 멋진 C 프로그램으로 멋진 옵션은 사용하지 않습니다. Visual Studio 2008에만 액세스 할 수 있으며 Visual Studio는 거꾸로 '변환'마법사를 제공하지 않습니다. 프로그램을 만들기 위해 nmake + makefile을 사용하여 소스 코드를 공개하는 것이 합리적일까요? nmake 파일 형식이 얼마 동안 크게 변경되지 않은 것 같아서보다 다양한 버전의 Visual Studio에서 작동하는 makefile을 제공 할 수 있습니다.

답변

2

간단한 대답은 없습니다. 그래도 우리가 그랬 으면 좋겠어. 2005 년 이후에는 재시작 팩으로 포장하거나 런타임과 정적으로 링크해야 할 필요가있는 상황에서만 상황이 더욱 악화되고 있습니다. 2008 년 정적 링크 된 바이너리가 이전 (2005 년 이전) 응용 프로그램과 대화하는 경우 어떻게 될지에 대한 단서가 없습니다. 미시시피에 따르면,이 작동합니다.

모든 사용자가 Visual Studio 복사본을 가지고 있다고 가정 할 수 있습니까? 그리고 그들은 모두 같은 버전을 실행하고 있습니까? (나는 알고 있습니다. 익스프레스 에디션은 요즘은 무료입니다 ...) 당신이이 길을 계속 추구하고 그들 모두가 같은 버전의 VS2008을 사용하여 모든 사람들이 더 편하게 생활하게하려면 어려움에 대한 사용자 기반을 교육해야합니다.

나는 공원을 돌아 다니는 것보다 make/gcc를 사용하고 싶습니다.

+0

네, 소스 코드와 메이크 파일을 공개 할 예정입니다. 왜냐하면 1) VS의 올바른 버전이 사용되고 있고 2) VS가 있습니다. 또한 실제 컴파일러는 무료이며 nmake 도구도 무료입니다. –

0

nmake를 사용하는 것이 최선의 방법이라고 생각합니다. 불행히도 VC6은 프로젝트를 기반으로 자동으로 만들어주는 마지막 버전입니다.

그러나 프로젝트는 매우 간단하므로 큰 장벽이되어서는 안됩니다.

5

CMake을 프로젝트의 빌드 도구로 사용할 수 있습니다. 그것은 당신을 위해 VS 프로젝트 파일을 생성 할 것이며, 파일을 열어 프로젝트를 빌드하는 데 사용할 수 있습니다. 변환 문제는 중요하지 않습니다. CMake를 사용하여 다시 빌드 할 수 있기 때문입니다.

이 경우 CMake의 이점은 이식성 및 버전 독립성 (플랫폼 간 구축 기능이기도하지만 관련이 없을 수 있음)입니다. 그러나 CMake는 약간의 학습 곡선이 있으며 프로젝트 파일을 사용하는 것만 큼 단순하지는 않지만 발생하는 문제를 해결합니다. 프로젝트가 비교적 간단하기 때문에 솔루션 일 수 있습니다.

9

이 작업을 수행하는 일반적인 방법은 솔루션의 하위 디렉터리에 vs 프로젝트 파일을 배치하는 것입니다.예

solution 
- build 
-- vc6 
-- vc7 
-- vc8 
-project1 
-- src 
-- build 
--- vc6 
--- vc7 
--- vc8 
-project2 
-- src 
-- build 
--- vc6 
--- vc7 
--- vc8 

그럼 당신은 대의 새 버전을 얻을 때 - 을 VC8하는 마지막 프로젝트 디렉토리, 예를 들면 VC7 복사 - 솔루션 에 대해 동일한 작업을 수행 - 수정 텍스트 편집기에서 솔루션 및 프로젝트 파일을 열을 어떤 경로 - 마지막으로 대 새 버전의 솔루션을 열고이 프로젝트를 변환 하자 -

이 무심입니다 (하나 개 또는 경로가 오래된 디렉토리에 프로젝트를 업데이트 잘못과 같은 경우에 사용 소스 제어) 하지만 몇 년에 한 번씩해야합니다.

이것은 우리가 해왔 던 방법이지만, 더 좋은 방법이 있습니다. 그것은 CMake을 사용하여 프로젝트를 생성하는 것입니다. 우리는 지금이 작업을 작업에 사용하며 단일 프로젝트 정의를 사용하여 Windows 및 Unix에서 기본적으로 작업 할 수 있습니다. 우리는 이클립스와 메이크 파일을 사용하는 유닉스에서 vs 프로젝트를 사용한다. 또한 CMake는 컴파일러와 링커 플래그와 같은 일반적인 프로젝트 설정을 추상화 할 수 있으므로 한 곳에서만 수정하면됩니다.

이제 멀티 플랫폼 기능이 필요한지 아닌지에 관계없이 모든 C++ 프로젝트에 CMake를 사용합니다.

0

오픈 소스 프로세스를 사용하는 것이 좋습니다. 코드를 VS ​​2008로 출시하고 이전 버전을 사용하는 사람이 해당 버전의 솔루션 파일을 제공 할 수있게하십시오. 이것이 오픈 소스 방식입니다.

0

상업용 Windows 라이브러리에서 활용 한 한 가지 해결책은 대용량 버전 (예 : Project_VS2005.sln, Project_VS2008.sln 등)을 사용하여 솔루션 파일의 이름을 지정하는 것입니다. 여전히 동기화 상태를 유지해야하지만 파일 경로를 변경하거나 디렉토리를 포함하거나 실제 솔루션 파일을 많이 수정할 필요는 없습니다. 지원되는 각 VS 버전마다 하나씩 여러 파일을 보관하십시오. 프로젝트 파일에 대해 동일한 작업을 수행해야하지만 여러 VS 버전으로 나란히 빌드를 지원하려는 경우가 아니면 다른 디렉토리 구조를 지원하기 위해 내용을 변경할 필요가 없습니다. 여기서 각기 다른 프로젝트 파일의 출력 설정 만 변경하면됩니다.

큰 해결책이 아니라 말하면 다른 옵션입니다.