2009-07-31 1 views
4

저는 리눅스 배경에서 왔지만 Windows에서 소프트웨어 버전을 제공하고 싶습니다. 사용자가 내 프로그램을 실행하려면 Visual C++ 재배포 가능 패키지가 필요합니다. 나는 그들을 패키지의 일부로 제공하고 싶다.Visual C++ 재배포 가능 재배포

내 걱정은 앞으로 Visual Studio 2008 Redistributable의 SP2가 될 것이라는 점입니다. SP1을 제공하거나 직접 설치하도록 요청하면 향후 툴에서 필요할 수있는 최신 버전의 DLL이 손상됩니까?

사용자에게이 작업을 수행하지 않도록하는 지침이 있습니까?

필자는 누군가에게 잘못된 지침을 제공하여 다른 사람의 컴퓨터 나 다른 응용 프로그램을 망치고 싶지는 않을 것입니다.

재배포 가능 exe 이외에도 필자는 도구를 압축 파일로 제공하여 원하는 디렉토리에 압축을 풀 수 있었기 때문에 설치 프로그램을 제공 할 계획이 없었습니다.

+0

확실하게 Microsoft는 최신 버전의 가능성을 고려하고 원래 재배포 가능 파일이 새 버전을 덮어 쓰지 않도록합니다. –

답변

7

VS 2008을 사용하면 런타임이 표시되고 나란히 설치됩니다. 따라서 응용 프로그램이 SP1의 런타임에 연결되어 있으면 SP1 런타임에서만 실행됩니다 (매니페스트가 Sp1 버전을 재정의해야한다고 명시하지 않는 한).

따라서 다른 유형의 DLL 대신 해당 유형의 DLL이 없으면 사용자에게 SP1 재배포 가능 패키지가 설치되어 있어야합니다.

+0

괄호 안의 마지막 코멘트는 오해의 소지가 있습니다. SP1 재배포는 앱과 함께 설치 및 제거됩니다. 사용자가 별도로 설치해야하는 것과는 다릅니다. –

+0

요점은 사용자가 이미 SP2를 설치하더라도 여전히 설치된다는 것입니다. –

+0

@Drew - 맞습니다. 적절한 설치 프로그램이있는 응용 프로그램에서는 문제가되지 않습니다. –

3

VC++ 재배포 가능 파일은 병렬 설치가 가능하며 평화롭게 공존 할 수 있습니다.

여기는 MSDN docs about the VC++ redistributables의 페이지입니다. MSDN의 전체 배포 섹션은 유익해야합니다.

7

왜이 문제를 정적으로 연결하고 피하지 않으시겠습니까?

+0

나는 이것이 가능하다는 것을 몰랐다. 신청서가 미래에 발급 될 수 있습니까? 앞으로 운영체제를 변경하면 정적으로 연결된 런타임이 호환되지 않을 수도 있습니다. – Juan

+0

정적으로 링크하면 사용하는 라이브러리 코드가 EXE의 일부가되므로 향후 O/S가 실제로 EXE를 실행할 수 있다면 괜찮을 것입니다. 나는 15 년 이상 전에 쓰여진 앱을 아직도 버리고있다. – Rob

+0

자, 이것은 리눅스와 다릅니다.예를 들어, Linux에서 pthread 라이브러리를 정적으로 링크하면 응용 프로그램이 앞으로 호환되지 않을 수 있습니다. 이것은 pthread 라이브러리와 os가 필요로하는 긴밀한 상호 작용 때문입니다. – Juan

2

사람들이 말했듯이, 그들은 나란히 설치됩니다. Visual Studio의 설치 프로그램 프로젝트 유형을 사용하는 경우 CRT 재배포 가능 패키지를 포함 할 수있는 옵션이 있으며 응용 프로그램과 함께 설치 및 제거하기 위해 올바르게 설정됩니다.

특히 \ Windows \ WinSxS 디렉토리에 설치됩니다.

, 어떻게 나란히 작업을위한 직관을 얻을

cd %systemroot%\winsxs 
dir /S msvc*.dll 

을 그리고 당신은 사람들이 당신의 컴퓨터에 넣어 모든 버전을 볼 수 있습니다합니다.