문제

Wix 3.0을 사용하고 있습니다. 폴더 이름 "이미지"가 있습니다. 따라서 이미지의 모든 파일을 MSI 패키지에 복사하고 싶습니다. 모든 파일을 복사하고 MSI를 다른 PC에 설치하면 이미지를 바인딩하지 않았습니다. 간단한 파일 요소를 사용하면 파일이 MSI 패키지에 바인딩됩니다. 그래서, 내가 뭘해야 해,

곧 답장 해줘

Samir에게 감사합니다

도움이 되었습니까?

해결책

Screensavers 설치 프로그램을 작성하기위한 일종의 전문화 된 설치 시드 애플리케이션 인 사용자가 선택한 여러 이미지 파일을 포함하는 Screensaver 설치 프로그램을 생성 할 수있는 응용 프로그램을 작성하려고합니다.

나는 먼저 a 템플릿 MSI 파일 대부분의 작업을 수행하는 (Wix 또는 다른 것). 사용자가 나중에 선택할 파일을 알지 못하므로 ID "userelectedFiles"로 자리 표시 자 구성 요소를 추가하십시오. 이 템플릿 MSI 파일을 응용 프로그램과 함께 배포하십시오.

그런 다음 사용자가 새 설치 프로그램을 생성하려면 템플릿을 복사하여 시작하십시오. 복사 된 MSI를 편집하여 사용자가 선택한 파일도 설치하십시오. "배포 도구 재단"API에서 찾을 수있는 .NET 클래스로이를 수행 할 수 있습니다. 이것은 Wix와 함께 제공되는 일련의 어셈블리입니다. 보세요 C:\program files\Windows Installer XML v3\sdk.

MSI의 파일 테이블 항목을 계산하는이 예와 같이 간단한 것들에 대해서만 DTF API를 사용했습니다.

var database = new Database(@"\path\to\some\file.msi");
var list = database.ExecuteQuery("SELECT FileName FROM File");
Console.WriteLine(list.Count);

귀하의 경우는 조금 더 복잡 할 것입니다. 당신은 아마해야 할 것입니다

  • 당신이 찾은 클래스와 함께 이미지 파일이 포함 된 택시 아카이브를 생성합니다.Microsoft.Deployment.Compression.Cab네임 스페이스.
  • 택시 아카이브를 MSI로 병합하십시오 Database.Merge
  • MSI의 파일 테이블에 새 항목 추가
  • 생성 된 각 MSI에 대해 제품 코드를 고유 한 것으로 변경하십시오.
  • 기타

MSI 파일의 내용과 편집 방법에 대한 아이디어를 얻으려면 먼저 다음과 함께 조금 재생하는 것이 좋습니다. 범고래 그리고 MSIDB 도구.

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