2012-07-13 89 views
1

有人可以幫助我在MSI中構建自定義操作,該操作將在成功安裝後自行復制到某個X位置。 我已經看到它可以使用.exe完成,但我只想用CA.DLL(C#)來完成,因爲這個exe文件將會是一個開銷。WiX自定義操作 - MSI自我複製

+1

可能重複http://stackoverflow.com/questions/88078/can-a-msi-file-install-itself -presumably-通過-A-自定義操作) – 2012-07-13 18:06:45

回答

2

下面是一個示例VB腳本,它將按名稱查找已安裝的產品並複製MSI的緩存副本。這將適用於Windows 7及更高版本,因爲完整的MSI已被緩存,並且所有嵌入式cab文件都保留在MSI中。你只需要在舊系統上沒有有效載荷的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" 
的[一個.msi文件可以安裝本身(可能通過自定義操作)?(