2012-07-13 3 views
1

MSI에서 사용자 지정 동작을 작성하여 일부 X 위치에 성공적으로 복사 한 사용자를 복사 할 수 있습니까? .exe를 사용하여 수행 할 수 있음을 이미 보았지만이 exe는 오버 헤드가되므로 CA.DLL (C#)에서만 수행하려고합니다.WiX 사용자 지정 작업 - MSI 복사 자체

+1

가능한 중복 http://stackoverflow.com/questions/88078/can-a-msi-file-install-itself -presumably-a-custom-action) –

답변

2

다음은 이름으로 설치된 제품을 찾고 MSI의 캐시 된 사본을 복사하는 VB 스크립트의 예입니다. 전체 MSI가 캐싱되고 모든 포함 된 cab 파일이 MSI에 남아 있으므로 Windows 7 이상에서 작동합니다. 이전 시스템에서는 페이로드가 없어도 MSI 만 얻을 수 있습니다.

Dim installer, products, product, productCode 
Set installer = Wscript.CreateObject("WindowsInstaller.Installer") 

For Each productCode In installer.Products 
    If InStr(1, LCase(installer.ProductInfo(productCode, "ProductName")), LCase("My Product Name")) Then Exit For 
Next 

If IsEmpty(productCode) Then Wscript.Quit 2 

Set products = installer.ProductsEx(productCode, "", 7) 
filesys.copyFile products(0).InstallProperty("LocalPackage"), "c:\path\to\newcopy.msi" 
[A .msi 파일은 (아마도 사용자 지정 작업을 통해) 자체를 설치할 수 있습니까?] (의
관련 문제