XP/Vista 이상에서 VB6용 간단한 설치 시스템을 만드는 방법은 무엇입니까?[닫은]

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

  •  09-06-2019
  •  | 
  •  

문제

단순함을 크게 강조합니다.저는 설치 프로그램을 만든 적이 없으며 많은 것을 배울 필요도 없습니다.내가 파일 더미를 넘겨줄 수 있고 파일을 어디에 저장할지 현명한 추측을 할 수 있는 시스템이 이상적일 것입니다.

계속해서 일반적인 질문에 답해 보세요.

그러나 내 경우에는 몇 가지 추가 제약 조건이 붙어 있습니다.설치할 프로그램은 VB6(아니면 5인가요?)과 몇 가지 이전 버전의 VB로 작성되었기 때문에 ~ 아니다 조만간 업데이트될 예정입니다.설치가 실행 중이고 사용할 클린 VM이 있으므로 다음 루프를 수행할 것입니다.설치를 실행하고, 손상된 위치를 찾아 수정하고, 설치 프로그램에 추가하고, VM을 되돌리고, 다시 시도하세요.누구든지 더 나은 접근 방식이 있다면 제안에 열려 있습니다.

해야 하다 XP에서 작동하게 하고 최신 버전의 Windows에서도 작동할 수 있는 기능을 갖고 싶습니다.

도움이 되었습니까?

해결책

이노셋업 또는 NSIS, 당신에게 더 쉬워 보이는 것. ISTool InnoSetup을 위한 훌륭한 GUI 도구로 설정 스크립트를 더욱 쉽게 만들 수 있습니다.

다른 팁

저는 몇 년 전 Vista 이전에 InnoSetup을 사용해 보았는데 당시에는 매우 만족했습니다.설치할 파일 몇 개와 시작 메뉴 아이콘만 있었습니다.훌륭하게 작동했고 배우기 쉬웠습니다.

의존성 워커 설치 프로그램에서 누락된 dll을 찾는 데 매우 유용합니다.dll을 알고 나면 다음을 사용하여 어떤 병합 모듈이 있는지 찾을 수 있습니다. 병합 모듈 찾기.

저는 NSIS와 함께 일해왔고 그 사소한 복잡성 중 일부를 극복해낸 환상적인 시스템입니다.무료이고 수많은 플러그인 기능을 제공하며 필요한 모든 작업을 수행할 수 있었습니다.

프로그램에 대한 전체 설치 패키지를 만드는 것은 그 자체로 거의 주제 영역입니다.고려해야 할 요소가 많이 있으며 우리 대부분은 더 이상 Windows 95를 실행하지 않습니다.세상은 예전처럼 단순하지 않습니다.

해결해야 할 사항이 많이 있으며 이러한 "설정" 문제 중 일부는 프로그램 변경도 의미합니다.예를 들어 Vista UAC가 등장했을 때 사람들에게 새로운 것처럼 보였던 "보호된 폴더" 개념이 있습니다.내 생각에 그들은 모두 관리자 권한으로 실행되고 있었나요?가장 간단한 형태로 이는 더 이상 프로그램("프로그램 파일"이라고도 함)의 EXE 옆에 쓰기 가능한 파일을 넣지 않는다는 의미입니다.

또 다른 요인은 레지스트리 사용 방식이 변경되었다는 것입니다.레지스트리 가상화에 대해 말하는 것이 아닙니다. 하지만 그것 역시 그것의 일부입니다.그러나 COM 등록은 컴퓨터별 및 사용자별로 수행할 수 있으며 UAC를 끄더라도 문제가 발생할 수 있습니다.보다 Windows Vista SP1에서 UAC를 사용한 사용자별 COM 등록 및 상승된 프로세스.결과적으로 설치 패키지는 regsvr32를 실행하거나 COM 라이브러리의 self-reg 진입점을 호출하면 안 됩니다."비고"를 참조하십시오. 자체 등록 테이블.


Windows 설치 프로그램은 그만큼 대부분의 경우 앞으로 나아갈 방법입니다.VB6 프로그래머는 MSI 패키지 생성을 위해 Visual Studio Installer 6.0 버전 1.1을 무료로 다운로드할 수 있습니다.VFP 문서에서 "COM 서버"를 참조하세요. Visual FoxPro 6.0 응용 프로그램 배포를 위해 Microsoft Visual Studio 설치 프로그램 사용 귀중한 정보를 위해.

이것은 가장 쉬운 옵션은 아니지만 VSI 1.1에는 기본 사항을 올바르게 설정하는 데 도움이 되는 VB 설정 마법사가 있습니다.[CommonAppData] 하위 폴더 생성 및 이에 대한 모든 권한 설정과 같은 고급 작업은 IDE 외부의 빌드 후 단계에서 수행되어야 합니다.Orca나 빌드 후 설치 프로그램 스크립트를 사용하지 않고도 더 많은 제어 기능을 제공하는 데 타사 도구가 유용할 수 있습니다.

스크립트된 "레거시" 설치 프로그램을 만드는 사람들은 따라잡으려고 노력하지만 스크립트는 점점 더 복잡해집니다.결과가 불확실할 때도 있습니다.Windows 7에는 몇 가지 새로운 기능이 추가되었습니다.

ClickOnce가 실제로 VB6에 가장 적합한 옵션은 아니지만 많은 프로그램의 XCopy 설치에 reg-free COM을 사용할 수 없다는 말은 없습니다.Reg-free COM은 해당 문제에 대해 설치 프로그램 패키지에 사용하기에 좋은 옵션일 수도 있습니다.


따라서 결국 VB6 프로그램을 배포하는 "가장 간단한" 방법은 시작 메뉴 바로 가기를 생성하는 스크립트를 실행하는 자동 압축 풀기 EXE로 포장된 등록 없는 COM XCopy 패키지가 될 것입니다.지름길 없이 살 수 있다면 훨씬 더 쉽습니다.필요한 곳에 패키지의 압축을 풀면 됩니다!

보다 내 매니페스트 만들기 또는 등록이 필요 없는 COM 패키징을 위한 대체 도구입니다.

이를 위해서는 대상 시스템이 XP(가급적 SP2) 이상을 실행해야 합니다.여기서 발생할 수 있는 유일한 결함은 XP가 XP SP3까지 VB6 SP6 런타임을 포함하지 않았기 때문에 먼저 VB6 SP5 런타임에 대해 프로그램을 테스트해야 한다는 것입니다.또 하나의 결함이 있습니다.이 방법으로는 ActiveX EXE를 사용할 수 없지만 여전히 등록이 필요합니다.

내 조언은 이것입니다.설치 프로그램을 가능한 한 간단하게 유지하십시오.Windows Installer는 매우 복잡한 소프트웨어이므로 제대로 작동하지 않을 경우 무슨 일이 일어나고 있는지 파악하기 어려울 수 있습니다.더 이상 원본 .msi 파일이 없는 파일을 복구하려고 하면 Windows Installer의 무한 루프를 경험한 적이 있을 것입니다.

Windows Installer를 사용하는 대부분의 경우는 큰 망치를 사용하여 너트를 깨는 것과 같습니다.

나는 내 자신의 작업을 위해 InnoSetup을 사용하고 직장에서는 InstallShield를 (내 의지에 반하여) 사용합니다.간단한 스크립트 기반 설치 프로그램으로 시작하고 합당한 이유가 있는 경우에만 Windows Installer를 사용하십시오.

Windows Installer가 아닌 일부 설정 도구(예: InnoSetup)에서는 GAC에 어셈블리를 설치하기 위한 지원이 누락될 수 있습니다.

사용된 Inno Setup을 사랑합니다."익숙함"에 중점을 둡니다.

단일 파일 설치 프로그램을 실행하면(일반적으로 수행하는 작업) 임시 폴더 아래의 폴더에 실제 설치 프로그램의 압축을 푼 다음 실행을 시도합니다.문제는...일부 바이러스 백신 프로그램에서는 이를 허용하지 않습니다.

저자는 이 사실을 알고 있으며 이에 대해 어떠한 조치도 취하지 않습니다.폴더 이름은 무작위이므로 바이러스 백신 프로그램에서 사용할 수 있는 면제 목록에 추가할 수 없습니다.

다시.저자는 이 사실을 알고 설치 중에 사용자에게 바이러스 백신 프로그램을 끄라고 말할 것을 제안했습니다.(그런 일이 일어날 것 같은)

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