임베디드 파일 버전으로 자체 추출 실행 파일을 만들기위한 좋은 무료 유틸리티는 무엇입니까? [닫은

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

문제

답변에 따르면 이것 질문, .msi 파일에 파일 버전을 포함 할 수 없습니다.

클라이언트에 제공하는 설치 프로그램에는 파일 버전이 있어야합니다.

따라서 내가하고 싶은 것은 MSI 파일과 Setup.exe가 포함 된 자체 추출 실행 파일을 작성하고 파일 버전을이 자체 추출 실행 가능에 대신 대신 배치하는 것입니다.

따라서 출력에 파일 버전을 포함시키는 것을 지원하는 자체 추출 실행 파일을 생성하는 유틸리티가 필요합니다. 또한 추출 후 파일을 자동으로 실행해야하므로 실제 설치 프로그램을 자동으로 시작할 수 있습니다. 스크립트가 있으면 좋을 것입니다.

내가 찾을 수있는 것은 이것, 멋지게 보이지만, 나는 자유로운 대안을 선호합니다.

누구든지 제안이 있습니까?

편집하다: 명확히하기 위해, 저는 실제로 설치 프로그램을 만들고 싶지 않습니다. 이미 VS 설정 프로젝트가 있습니다. 나는 단지 자기 추출자를 원한다 (Winzip이 만들 수있는 것처럼). 따라서 사용자는 Setup-Blorgbeard2008.exe를 통해 "버전 : 1.0.0.0"을 참조하십시오. 사용자는 DoubleClicks IT를 통해 SETUP.EXE 및 SETUP.MSI를 자동으로 추출한 다음 SETUP.EXE를 실행합니다. 그런 다음 사용자는 일반 설치 프로그램 화면을보고 평소처럼 진행됩니다.

다른 편집 : 예, 다른 질문에 대한 답변이 되었기 때문에 더 이상 자기 추출자가 필요하지 않습니다. 그것은이 모든 질문을 거의 무의미하게 만듭니다. 그것 ~일 것이다 setup.exe 및 setup.msi 대신 하나의 파일 만 배포 할 수 있어도 좋습니다.

도움이 되었습니까?

해결책

NSIS는 이것을 할 수 있습니다.

빌드 환경의 일부는 버전 정보를 NSIS 스크립트 소스에있는 "헤더"파일로 출력하는 스크립트입니다. 버전 정보를 포함시키는 데 유사한 것을 사용할 수 있어야하며 추출 후 NSIS가 파일을 실행할 수 있습니다.

실제로 NSIS가 설치 프로그램 패키지를 생성함에 따라 접근 방식을 크게 단순화 할 수 있습니다.

다른 팁

아직 여기에 나열되어 있지 않다는 사실에 약간 놀랐습니다. IEXPRESS Windows와 함께 제공되는 간단한 도구이며 자체 추출 설치 프로그램을 만드는 데 사용할 수 있습니다.

Windows SDK를 다운로드하면 MS가 컴파일 할 소스 코드를 제공하는 msistuff.exe 및 setup.exe가 있습니다. Msistuff는 당신이 그것을 setup.exe에 제공하는 msi를 "물건"할 것입니다. 그런 다음 setup.exe를 배포 할 수 있습니다.

자세한 정보 http://support.microsoft.com/kb/888473

단점 :

  • 새 버전의 제품 (MSI)이있을 때마다 제품 버전으로 Setup.exe를 다시 컴파일해야합니다.
  • setup.exe 소스가 어떤 라이센스를 분배하는지 확실하지 않습니다.

다른 설치자를 묶어야했기 때문에 실제로이 특정 릴리스에 NSIS를 사용하게되었습니다.

참고로, 여기에 내가 사용한 스크립트는 다음과 같습니다.

VIProductVersion              "1.0.0.0" ; set version here
VIAddVersionKey "FileVersion" "1.0.0.0" ; and here!
VIAddVersionKey "CompanyName" "MyCompany"
VIAddVersionKey "LegalCopyright" "© MyCompany"
VIAddVersionKey "FileDescription" "Installer for MyProgram"
OutFile MyProgram-Setup.exe

SilentInstall silent

Section Main    
    SetOutPath $TEMP
    SetOverwrite on
    File SharedManagementObjects.msi
    File SQLSysClrTypes.msi
    File Release\Setup.exe
    File Release\Setup.msi
    ExecWait 'msiexec /passive /i "$OUTDIR\SharedManagementObjects.msi"'
    ExecWait 'msiexec /passive /i "$OUTDIR\SQLSysClrTypes.msi"'
    Exec     '"$OUTDIR\Setup.exe"'
SectionEnd

dotnetzip Windows 탐색기 마우스 오버에 표시되는 버전 번호가 포함 된 자체 추출 아카이브를 생성 할 수 있습니다. SFX에는 또한 Windows Explorer의 속성/세부 사항보기에 표시되는 제품 이름, 설명, 제품 버전 및 저작권이 포함되어 있습니다.

SFX는 추출 후에 지정한 명령을 실행할 수 있습니다.

SFX 생성은 PowerShell에서 스크립트를 작성하거나 vb.net, c#, vbscript 또는 javaScript 등을 사용하여 프로그램을 작성할 수 있습니다.

버전 번호를 얻으려면 DotNetZip의 V1.9.0.26 이상이 필요합니다.

NSIS 좋은 선택처럼 보입니다

노력하다 inno-setup

BAINGOVERSION 지시 사항을 이진 버전 번호로 설정하십시오 (예 :

VersionInfoVersion = 1.1.0.0

이것은 마우스 오버 텍스트와 속성에 나타납니다

여기에서 진행중인 실험 :

팝업 버전 정보 :http://screencast.com/t/lvqvlfxcj3g

Visual Studio Assembly 정보 :http://screencast.com/t/fqunlmnh13

일반 기존 MSI 파일로 설치되었습니다.

"버전 : 1.5.0"텍스트를 설정 프로젝트의 설명 속성에 추가하면 버전 번호는 다음과 같은 MSI 파일에 표시됩니다.http://screencast.com/t/a499i6js

나는 일반적으로 내 목적을 위해 datamonkey_1_5_0.msi와 같은 MSI 파일의 이름을 바꿉니다.

fyi dotnetzip self-extractor를 사용하는 것은 bootstrapper setup.exe를 사용하여 .net이 설치되어 있는지 확인하는 경우 (dotnetzip self-extractor deartment .net 2.0).

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