왜 이렇게 많은 Visual C ++ 재배포 가능 패키지가 있습니까?


19

게임이나 OpenOffice를 설치할 때마다 설치 루틴의 일부는 이미 시스템에있는 다른 10 개 바로 옆에 또 다른 Visual C ++ 2005/2008 재배포 가능 패키지를 설치하는 것입니다.

왜 그렇게 많은 다른 버전 (같은 것 같은 느낌)이 필요한가?


최근에 Windows에 OpenOffice를 설치하지 않았지만 AFAIK OO.org 순수 Java입니다. 혼란 스러워요!
lajuette

2
OO.org는 실제로 일부 Java 구성 요소 ( source )가있는 C ++입니다 .
heavyd

이것은 드문 일이 아닙니다. 프로그램을 추가 / 제거 할 때 시각적으로 롤업 할 수있는 방법이 있었으므로 모두 볼 필요는 없습니다.
Keltari

답변:


22

Visual C ++ 재배포 가능 패키지는 Visual C ++를 사용하여 소프트웨어를 작성하는 앱 개발자가 제공하는 구성 요소입니다. 개발자는 앱에서 잘 테스트되고 널리 사용되는 Microsoft 코드를 앱에 사용함으로써 일반적으로 사용되는 코드 (예 : sin 및 cos math 함수 및 텍스트 상자 또는 버튼과 같은 공통 사용자 인터페이스 요소 처리)를 작성하지 않으므로 개발 비용을 절감 할 수 있습니다. 앱 개발자가 사용하는 런타임 버전의 조각화로 인해 많은 앱을 설치하면 Visual C ++ 재배포 가능 항목이 많이 표시됩니다. 하나의 Visual C ++ 재배포 가능 패키지를 제거하면 몇 메가 바이트의 디스크 공간을 절약 할 수 있지만 그렇게하면 일부 앱이 손상 될 위험이 있습니다.

프로그래머는 Visual C ++ 런타임을 최신 상태로 유지하기 위해 Microsoft에 의존하기 때문에 Microsoft는 재배포 가능 파일에 대한 보안 업데이트를 릴리스하지만 프로그래머 요구로 인해 Visual C ++ 재배포 가능 파일은 서로 우선하지 않으며 이전 버전은 호환성을 위해 유지됩니다. 일부 앱은 앱이 게시 된대로 정확하게 실행되도록하는 데 필요한 Visual C ++ dll 버전에 대해 매우 구체적입니다. 작성자는 새 런타임과의 앱 호환성을 테스트 할 때까지 최신 런타임으로 업데이트합니다. Microsoft가 재배포 가능 파일에 대한 업데이트를 릴리스 한 후 화가 난 고객으로부터 수천 건의 전화를 막는 방법입니다. 그러나 대부분의 앱은 동일한 주요 버전의 최신 버전에 바인딩됩니다.

또한 Microsoft는 앱 개발자가 어떤 것을 선택할지 모르기 때문에 많은 Visual C ++ 런타임을 지원해야합니다. 동일한 앱 내에서도 여러 버전의 Visual C ++ 재배포 가능 패키지가 필요할 수 있습니다. 예를 들어 Visual C ++ 2008 재배포 가능 패키지에 종속 된 앱이 Visual C ++ 2005 재배포 가능 패키지에 따라 구성 요소를 사용하는 경우 앱 개발자는 두 버전의 Visual C ++ 재배포 가능 패키지를 모두 제공해야합니다. 64 비트 컴퓨터에서는 Visual C ++ 재배포 가능 패키지가 일반적으로 사용되는 구성 요소이므로 32 비트 앱과 64 비트 앱 (또는 포함 된 앱)이있는 것이 일반적이므로 시스템에 x86 및 x64 에디션의 Visual C ++ 재배포 가능 패키지를 모두 설치할 수 있습니다. 64 비트 시스템에 설치된 32 비트 코드 및 64 비트 코드)

재배포 가능 파일과 동일한 설치 날짜를 가진 앱을 찾아서 재배포 가능 파일을 설치하는 앱을 찾을 수는 있지만 동일한 재배포 가능 파일에 따라 설치 날짜가 더 긴 다른 앱 수는 알 수 없습니다. 정확한 종속성을 찾는 데 소요되는 시간은 재배포 가능 항목을 제거하여 절약 할 수있는 몇 메가 바이트의 가치가 없을 것입니다.


이것은 매우 좋은 답변입니다. 개발자는 특정 버전을 대상으로합니다. 릴리스 A의 기능은 릴리스 B에서 동일한 방식으로 작동한다고 보장되지 않습니다. 물론 실제로 기본은 릴리스 B 이상에 존재하는 새로운 기능인 기능 C와 릴리스 2에만 존재하는 기능 C 사이에서 동일하게 유지됩니다. 릴리스 C는 개발자가 직면 한 실제 문제입니다. 그래서 그들은 사용한 버전을 공개하고 해당 버전 만 사용하도록 소프트웨어를 컴파일합니다. 이 특정 경우에 C ++ 재배포 가능 패키지의 여러 날짜 릴리스는 동일한 버전 (예 : 2005 년 2 월, 3 월, 4 월)으로 가능합니다.
Ramhound

3

그 이유는 그것들이 동일하지 않기 때문입니다. 먼저 모든 버전의 MSVC ++에는 자체 버전의 런타임 라이브러리가 포함되어 있음을 이해해야합니다. 32 비트 및 64 비트 버전도 있습니다. 또한 업데이트 된 버전의 런타임 라이브러리를 제공하는 서비스 팩이 있습니다.

10 개의 설치가있는 경우 이름을 나열 할 수 있습니까? 나는 당신이 4 이상 (2005 년 32 비트 및 64 비트, 2008 년 동일)을 가져야한다고 생각하지 않습니다. 서비스 팩은 업데이트되지 않은 버전을 대체해야합니다.


1
나는 이것이 옳다고 믿는다-내가 알고있는 것은 4 개 뿐이며 여기서 개선 된 것은 나란히 설치할 수 있다는 것입니다. 필요한 빌드는 응용 프로그램이 응용 프로그램을 컴파일 할 때 사용되는 런타임에 정적으로 또는 동적으로 링크되었는지 여부에 따라 다릅니다. 이들은 평화롭게 공존 할 수 있으며 상대적으로 작습니다.
jtreser

VS2010에 +2 더! 그러나 여전히 OP에 10이 있으면 너무 많습니다.
AndrejaKo

글쎄, 나는 그들을 세지 않았다. 직장 내 컴퓨터에는 2 (2008 32 비트 및 64 비트, 둘 다 9.0.something)가 있습니다. 집에서도 세어 볼게요.
Tomalak

3
나는 12를 나열했습니다. 2005 (2) (나열된 사양 또는 버전) 2008 (8) X32 / 64 9.0.21022, 9.0.30729.17, 9.0.30729.4148, 9.0.30729.6161 2010 (2) X32 / 64 10.0.40219
대런 홀

1
@DarrenHall-그렇게 많은 것이 정상입니다. 각 버전마다 차이가 있으며 특정 버전을 대상으로하는 응용 프로그램이 있습니다.
Ramhound

1

어떤 프로그램이 파일을 사용할 것인지 정확히 알지 않는 한, C ++ 재배포 가능 파일에는 여러 버전이 있으며,이 파일을 사용한 모든 프로그램 중 하나라도 제거하면 다시 설치하지 않으면 영구적으로 비활성화됩니다.

많은 프로그램을 설치 한 사람에게는 여러 버전이 있습니다. Microsoft는이 코드를 재배포 할 수 있으므로 매번 새로운 코드를 발명하지 않고 개발자가 사용자를 위해 코드 중 하나만 표시 할 수 있습니다.

그들은 작고 걱정할 정도로 크지 않습니다. 이들 중 다수는 KB에 불과하고 일부는 MB에 불과하며 GB 인 프로그램보다 우수합니다.

나는 그들 중 많은 사람들을 볼 수 있다는 것을 알고 있지만 (나는 그들 중 21 명을 가지고 있습니다), 그들을 내버려 두십시오. 제거하면 프로그램이 종료됩니다. 프로그램 개발자들도 개별 프로그램에 대해 레이블을 붙인다면 좋을 것입니다. 그러나 그들이 그렇게했다면 수백 개가 더있을 것입니다. 지금은 프로그램이 피기 백을 사용하여 프로그램이 기존 및 새로운 코드를 사용할 수 있습니다.

컴퓨터 네트워킹 학위를 받았습니다. 나는 내 자신에게하지 않을 것을 당신의 컴퓨터에 대해 아무 것도 말하지 않을 것입니다

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