응용 프로그램에 .NET 런타임을 재분배하는 것에 대해 걱정해야합니까?

StackOverflow https://stackoverflow.com/questions/1046607

  •  20-08-2019
  •  | 
  •  

문제

응용 프로그램의 크기가 높아지고 다운로드 시간, 개발 시간이 증가하고 다양한 배포 오류를 도입 할 수 있으므로 응용 프로그램에서 가능한 경우 .NET 런타임을 재분배하지 않으려 고합니다. Microsoft 사용자가 Windows 업데이트를 통해 .NET 런타임을 업데이트하도록 강요합니까? 그렇지 않은 경우 .NET 런타임을 재배포하는 옵션은 무엇입니까? Microsoft가 .NET AppliActions로 런타임을 더 쉽게 재 해당하게 만들었습니까? 또한 .NET Runtime Gauranteed가 뒤로 호환 될 수 있습니까?

나는 여기서 답을 요약하고 있습니다. .NET 실행 시간의 존재를 최소한 점검 할 수있는 부트 스트레이퍼가 있어야합니다. 대안 옵션은 런타임을 패키지하고 존재하지 않는 경우 배포하는 것입니다. 포장 및 Visual Studio를위한 여러 가지 옵션이 있습니다. 런타임으로 설치 프로그램 프로젝트를 구축 할 수있는 옵션을 제공합니다. Innosetup, Wix 등과 같은 다른 포장 옵션도 있습니다 (어떤 옵션이 더 좋고 무료인지 확실하지 않음). 런타임 설치에는 재부팅이 필요하며 선택한 설치 옵션은 응용 프로그램 설치 후 재부팅을 재개해야합니다.

도움이 되었습니까?

해결책

또한, 당신 ~해야 한다 그것에 대해 걱정합니다. 런타임이 없으면 응용 프로그램이 신비하게 작동하지 않습니다. 런타임의 특정 버전이 사전 설치되었다고 가정해서는 안됩니다.

위에서 언급 한 바와 같이, VS의 설치 프로그램 프로젝트 마법사는 필요한 경우에만 다운로드하는 설정 파일을 만듭니다. NSIS 및 INGO 설정에는 같은 작업을 수행하는 스크립트가 있습니다. 런타임을 설치할 때는 재부팅 및 연속성 세트를 처리해야합니다. 설치 프로그램 마법사가 이것을 당신을 위해 처리한다고 생각합니다.

다른 팁

Windows 설치 프로그램 프로젝트 만 만드십시오. VS2005 및 VS2008의 옵션으로이를 가져야합니다. 애플리케이션을 설치할 때 시스템에 .NET 런타임과 해당 문제에 필요한 다른 소프트웨어가 있는지 확인합니다. 이렇게하면 응용 프로그램이 아닌 설치 프로그램 패키지에 추가됩니다. 이것은 일반적으로 응용 프로그램을 설치하거나 설치 방패를 사용하는 방법입니다.

여기 가이드가 있습니다.

Alt Text http://img154.imageshack.us/img154/2066/newproject.png

설치 프로그램 패키지를 만들 때 런타임이 필요한 경우에만 설치합니다. 즉, 아직 시스템에 있지 않음 (또는 잘못된 버전)

편집 : 예이 패키지를 만들어야합니다.이 정확한 일을 위해 인생을 훨씬 쉽게 만듭니다. VS 에서이 작업을 수행하는 방식은 파일-> 프로젝트 및 intstaller 프로젝트를 선택합니다. 마법사는 옵션을 안내합니다.

어떤 종류의 부트 스트랩퍼를 사용하여 .NET이 설치된 지 확인한 다음 필요한 경우 다운로드 할 수 있습니다.

예를 들어, MSI 공장 Bootstrapper (저는 MSI 공장을 옹호하지 않습니다. 그것은 추악한 프로그램입니다. 그러나 우리와 마찬가지로 상용 소프트웨어를 개발하는 경우 라이센스 비용이 가치가 있습니다.)이 기능을 수행하기 위해 간단히 포함 할 수있는 스크립트가 있습니다. 우리는 WIX + MSI Factory Bootstrapper를 사용하여 단일 압축 EXE (30MB)와 MSI를 다운로드하는 작은 1MB "다운로더"를 모두 배포합니다. .NET 2.0의 존재에 대한 EXE의 검사를 한 다음 필요한 경우 다운로드하십시오. 또한 .NET을 확인하고 설치가 존재하지 않는 경우 블록 설치를 확인하는 독립형 MSI를 배포합니다.

기본적으로 다음은 있습니다.

  • Windows XP- .NET으로 배송되지 않습니다. 고객은 수동으로 설치해야합니다 (선택적인 Windows 업데이트 구성 요소로 나타납니다)
  • Vista- .NET 2.0이있는 선박 (그러나 ~ 아니다 1.1)
  • 서버 2003- .NET 1.1이 포함되어 있습니다

.NET 1.1을 무시하고 무시하십시오. Vista 사용자 및 Beyond는 레거시 애플리케이션 지원을 위해 또는 개발자 인 경우에만 설치합니다.

.NET 2.0은 가장 일반적으로 설치된 버전이며 사용자 기반에서 10% 미만의 사용자가 .NET 3.5가 설치되어 있음을 발견했습니다. 응용 프로그램이 기술적 인 괴짜 청중을 대상으로한다면 ~ 50%의 사람들이 .NET 3.0을 가질 것이라고 말하고 싶습니다. 소비자/소매/비 기술 시장을 목표로하는 경우 .NET 2.0에서 약 30%, .NET 3.0 이상으로 10%를 추정 할 수 있습니다.

위의 수치는 대부분 비 기술적 인 청중 인 웹 사이트에 대한 브라우저 트래픽을 기반으로합니다. 이것은 아마도 시장에 대한 아이디어를 얻는 가장 좋은 방법 일 것입니다. IE는 항상 사용자 에이전트 문자열에 .NET 버전을보고하므로 웹 로그를 나누고 분석을 시작합니다 :)

때에 따라 다르지. 내가 일하는 경우, 우리는 런타임을 다운로드하기 위해 인터넷에 연결되지 않은 일부 고객이 있기 때문에 설치 프로그램에 전제 조건으로 포함시킵니다.

당신이 할 수있는 몇 가지 일 :

  1. 대상 시스템에 .NET 버전에 대한 테스트를 포함시키고 설치가없는 경우 설치를 종료하십시오.
  2. .NET 런타임이 포함 된 설치 버전을 만들고 필요한 경우 설치합니다.
  3. .NET 런타임을 다운로드하고 필요한 경우 설치하는 설치 버전을 만드십시오.

내 고객이 모두 온라인 상태라는 것을 알았다면, .NET에 대한 옵션 3 및 Crystal Reports 또는 SQL Express와 같은 다른 전제 조건을 수행 할 것입니다. 포함 된 위치에 설치되었으며 설치는 100MB 이상입니다. 70MB+는 전제 조건입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top