2014-03-03 45 views
0

我正在使用WiX爲我的應用程序創建一個MSI,然後使用Innosetup將它包裝在一個.exe文件中。wix:從添加/刪除程序的MSI修復提示TEMP目錄MSI

從添加/刪除程序列表中選擇修復時,我始終會在Windows TEMP文件夾中找到一個Windows Installer提示符,顯然.msi文件沒有打破修復。如果我運行原始安裝程序.exe,我可以很好地修復。運行裸MSI也允許我修復選項。

我的MSI中是否存在缺少正確緩存安裝程序以進行修復的問題?

更新日誌記錄!

我不是WiX的專家,但我已經想出瞭如何啓用詳細日誌記錄,這是我執行修復時的日誌。我可以看到,它看起來在臨時目錄第一原始MSI但顯然,這是行不通的。我只是不明白我需要改變,以解決這個問題:

=== Verbose logging started: 3/4/2014 10:01:40 Build type: SHIP UNICODE 5.00.7600.00 Calling process: C:\Windows\Explorer.EXE === 
MSI (c) (F0:10) [10:01:40:810]: Font created. Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg 

MSI (c) (F0:10) [10:01:40:810]: Font created. Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg 

MSI (c) (F0:D8) [10:01:40:857]: Resetting cached policy values 
MSI (c) (F0:D8) [10:01:40:857]: Machine policy value 'Debug' is 0 
MSI (c) (F0:D8) [10:01:40:857]: ******* RunEngine: 
      ******* Product: {12152253-D5C3-4E75-9100-D53D7ED69262} 
      ******* Action: 
      ******* CommandLine: ********** 
MSI (c) (F0:D8) [10:01:40:857]: Client-side and UI is none or basic: Running entire install on the server. 
MSI (c) (F0:D8) [10:01:40:857]: Grabbed execution mutex. 
MSI (c) (F0:D8) [10:01:40:935]: Cloaking enabled. 
MSI (c) (F0:D8) [10:01:40:935]: Attempting to enable all disabled privileges before calling Install on Server 
MSI (c) (F0:D8) [10:01:40:935]: Incrementing counter to disable shutdown. Counter after increment: 0 
MSI (s) (BC:54) [10:01:40:935]: Running installation inside multi-package transaction {12152253-D5C3-4E75-9100-D53D7ED69262} 
MSI (s) (BC:54) [10:01:40:935]: Grabbed execution mutex. 
MSI (s) (BC:28) [10:01:40:935]: Resetting cached policy values 
MSI (s) (BC:28) [10:01:40:935]: Machine policy value 'Debug' is 0 
MSI (s) (BC:28) [10:01:40:935]: ******* RunEngine: 
      ******* Product: {12152253-D5C3-4E75-9100-D53D7ED69262} 
      ******* Action: 
      ******* CommandLine: ********** 
MSI (s) (BC:28) [10:01:40:935]: Machine policy value 'DisableUserInstalls' is 0 
MSI (s) (BC:28) [10:01:40:935]: Setting cached product context: machine assigned for product: 352251213C5D57E419005DD3E76D2926 
MSI (s) (BC:28) [10:01:40:935]: Using cached product context: machine assigned for product: 352251213C5D57E419005DD3E76D2926 
MSI (s) (BC:28) [10:01:40:935]: Using cached product context: machine assigned for product: 352251213C5D57E419005DD3E76D2926 
MSI (s) (BC:28) [10:01:40:935]: Using cached product context: machine assigned for product: 352251213C5D57E419005DD3E76D2926 
MSI (s) (BC:28) [10:01:40:935]: Using cached product context: machine assigned for product: 352251213C5D57E419005DD3E76D2926 
MSI (s) (BC:28) [10:01:40:935]: Using cached product context: machine assigned for product: 352251213C5D57E419005DD3E76D2926 
MSI (s) (BC:28) [10:01:40:935]: Attempting to recache package via ProductCode. Beginning source resolution. 
MSI (s) (BC:28) [10:01:40:935]: User policy value 'SearchOrder' is 'nmu' 
MSI (s) (BC:28) [10:01:40:935]: User policy value 'DisableMedia' is 0 
MSI (s) (BC:28) [10:01:40:935]: Machine policy value 'AllowLockdownMedia' is 1 
MSI (s) (BC:28) [10:01:40:935]: SOURCEMGMT: Looking for sourcelist for product {12152253-D5C3-4E75-9100-D53D7ED69262} 
MSI (s) (BC:28) [10:01:40:935]: Using cached product context: machine assigned for product: 352251213C5D57E419005DD3E76D2926 
MSI (s) (BC:28) [10:01:40:935]: SOURCEMGMT: Adding {12152253-D5C3-4E75-9100-D53D7ED69262}; to potential sourcelist list (pcode;disk;relpath). 
MSI (s) (BC:28) [10:01:40:935]: SOURCEMGMT: Ignoring last used source. 
MSI (s) (BC:28) [10:01:40:935]: Using cached product context: machine assigned for product: 352251213C5D57E419005DD3E76D2926 
MSI (s) (BC:28) [10:01:40:935]: SOURCEMGMT: Now checking product {12152253-D5C3-4E75-9100-D53D7ED69262} 
MSI (s) (BC:28) [10:01:40:935]: SOURCEMGMT: Processing net source list. 
MSI (s) (BC:28) [10:01:40:935]: SOURCEMGMT: Trying source C:\Users\qa\AppData\Local\Temp\is-5O84H.tmp\. 
MSI (s) (BC:28) [10:01:40:935]: Note: 1: 1402 2: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer 3: 2 
MSI (s) (BC:28) [10:01:40:935]: Note: 1: 2203 2: C:\Users\qa\AppData\Local\Temp\is-5O84H.tmp\softphone.msi 3: -2147287037 
MSI (s) (BC:28) [10:01:40:935]: SOURCEMGMT: Source is invalid due to missing/inaccessible package. 
MSI (s) (BC:28) [10:01:40:935]: Note: 1: 1706 2: -2147483647 3: softphone.msi 
MSI (s) (BC:28) [10:01:40:935]: SOURCEMGMT: Processing media source list. 
MSI (s) (BC:28) [10:01:40:935]: Note: 1: 2203 2: 3: -2147287037 
MSI (s) (BC:28) [10:01:40:935]: SOURCEMGMT: Source is invalid due to missing/inaccessible package. 
MSI (s) (BC:28) [10:01:40:935]: Note: 1: 1706 2: -2147483647 3: softphone.msi 
MSI (s) (BC:28) [10:01:40:935]: SOURCEMGMT: Processing URL source list. 
MSI (s) (BC:28) [10:01:40:935]: Note: 1: 1402 2: UNKNOWN\URL 3: 2 
MSI (s) (BC:28) [10:01:40:935]: Note: 1: 1706 2: -2147483647 3: softphone.msi 
MSI (s) (BC:28) [10:01:40:935]: Note: 1: 1706 2: 3: softphone.msi 
MSI (c) (F0:10) [10:01:40:935]: User policy value 'SearchOrder' is 'nmu' 
MSI (c) (F0:10) [10:01:40:935]: User policy value 'DisableMedia' is 0 
MSI (c) (F0:10) [10:01:40:935]: Machine policy value 'AllowLockdownMedia' is 1 
MSI (c) (F0:10) [10:01:40:935]: SOURCEMGMT: Prompting user for a valid source. 
MSI (c) (F0:10) [10:01:40:935]: Machine policy value 'DisableBrowse' is 0 
MSI (c) (F0:10) [10:01:40:935]: Machine policy value 'AllowLockdownBrowse' is 0 
MSI (c) (F0:10) [10:01:40:935]: Machine policy value 'DisableUserInstalls' is 0 
MSI (c) (F0:10) [10:01:40:935]: Machine policy value 'DisableMsi' is 0 
MSI (c) (F0:10) [10:01:40:935]: Machine policy value 'AlwaysInstallElevated' is 0 
MSI (c) (F0:10) [10:01:40:935]: User policy value 'AlwaysInstallElevated' is 0 
MSI (c) (F0:10) [10:01:40:935]: Product {12152253-D5C3-4E75-9100-D53D7ED69262} is admin assigned: LocalSystem owns the publish key. 
MSI (c) (F0:10) [10:01:40:935]: Product {12152253-D5C3-4E75-9100-D53D7ED69262} is managed. 
MSI (c) (F0:10) [10:01:40:935]: Running product '{12152253-D5C3-4E75-9100-D53D7ED69262}' with elevated privileges: Product is assigned. 
MSI (c) (F0:10) [10:01:40:935]: SOURCEMGMT: Browsing is enabled - but requires cred prompt. 
MSI (c) (F0:10) [10:01:40:935]: Font created. Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg 

MSI (c) (F0:10) [10:01:40:935]: SOURCEMGMT: Now checking product {12152253-D5C3-4E75-9100-D53D7ED69262} 
MSI (c) (F0:10) [10:01:40:935]: SOURCEMGMT: Attempting to use LastUsedSource from source list. 
MSI (c) (F0:10) [10:01:40:935]: Note: 1: 1706 2: 3: softphone.msi 
MSI (c) (F0:10) [10:01:40:935]: SOURCEMGMT: Processing net source list. 
MSI (c) (F0:10) [10:01:40:935]: Note: 1: 1706 2: -2147483647 3: softphone.msi 
MSI (c) (F0:10) [10:01:40:935]: SOURCEMGMT: Processing media source list. 
MSI (c) (F0:10) [10:01:40:935]: SOURCEMGMT: Trying media source ;. 
MSI (c) (F0:10) [10:01:40:935]: Note: 1: 1706 2: 3: softphone.msi 
MSI (c) (F0:10) [10:01:40:935]: SOURCEMGMT: Processing URL source liMSI (s) (BC:54) [10:01:46:357]: I/O on thread 2564 could not be cancelled. Error: 1168 
MSI (s) (BC:54) [10:01:46:357]: I/O on thread 2556 could not be cancelled. Error: 1168 
MSI (s) (BC:54) [10:01:46:357]: I/O on thread 500 could not be cancelled. Error: 1168 
MSI (s) (BC:54) [10:01:46:357]: I/O on thread 1672 could not be cancelled. Error: 1168 
MSI (s) (BC:54) [10:01:46:435]: I/O on thread 580 could not be cancelled. Error: 1168 
MSI (s) (BC:54) [10:01:46:435]: I/O on thread 2272 could not be cancelled. Error: 1168 
MSI (s) (BC:54) [10:01:46:435]: I/O on thread 1332 could not be cancelled. Error: 1168 
MSI (s) (BC:54) [10:01:46:435]: I/O on thread 1756 could not be cancelled. Error: 1168 
MSI (s) (BC:54) [10:01:46:435]: I/O on thread 296 could not be cancelled. Error: 1168 
MSI (s) (BC:28) [10:01:46:435]: SOURCEMGMT: Failed to resolve source 
MSI (s) (BC:28) [10:01:46:435]: MainEngineThread is returning 1612 
st. 
MSI (c) (F0:10) [10:01:40:935]: Note: 1: 1402 2: UNKNOWN\URL 3: 2 
MSI (c) (F0:10) [10:01:40:935]: Note: 1: 1706 2: -2147483647 3: softphone.msi 
MSI (c) (F0:10) [10:01:40:935]: Note: 1: 1706 2: 3: softphone.msi 
MSI (c) (F0:2C) [10:01:44:372]: SOURCEMGMT: Trying source C:\Users\qa\AppData\Local\Temp\is-5O84H.tmp\. 
MSI (c) (F0:2C) [10:01:44:372]: Note: 1: 2203 2: C:\Users\qa\AppData\Local\Temp\is-5O84H.tmp\softphone.msi 3: -2147287037 
MSI (c) (F0:2C) [10:01:44:372]: SOURCEMGMT: Source is invalid due to missing/inaccessible package. 
MSI (c) (F0:2C) [10:01:44:372]: Note: 1: 1706 2: -2147483647 3: softphone.msi 
MSI (c) (F0:2C) [10:01:44:372]: Font created. Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg 

MSI (s) (BC:54) [10:01:46:435]: User policy value 'DisableRollback' is 0 
MSI (s) (BC:54) [10:01:46:435]: Machine policy value 'DisableRollback' is 0 
MSI (s) (BC:54) [10:01:46:435]: Incrementing counter to disable shutdown. Counter after increment: 0 
MSI (s) (BC:54) [10:01:46:435]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Rollback\Scripts 3: 2 
MSI (s) (BC:54) [10:01:46:435]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Rollback\Scripts 3: 2 
MSI (s) (BC:54) [10:01:46:435]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\InProgress 3: 2 
MSI (s) (BC:54) [10:01:46:435]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\InProgress 3: 2 
MSI (s) (BC:54) [10:01:46:435]: Decrementing counter to disable shutdown. If counter >= 0, shutdown will be denied. Counter after decrement: -1 
MSI (s) (BC:54) [10:01:46:435]: Restoring environment variables 
MSI (c) (F0:D8) [10:01:46:482]: Decrementing counter to disable shutdown. If counter >= 0, shutdown will be denied. Counter after decrement: -1 
MSI (c) (F0:D8) [10:01:46:497]: MainEngineThread is returning 1612 
=== Verbose logging stopped: 3/4/2014 10:01:46 === 

回答

1

MSI緩存.msi但不會將其用作修復源,因此它會提示「真實」源重新安裝文件。 (在Windows 7之前,MSI會從緩存的.msi副本中刪除任何嵌入文件,自Windows 7以來,它會保持它們完好無損,以便不會使數字簽名無效,但仍不會將它們用作源。) WiX chainer,緩存軟件包並向MSI註冊源碼,以便修復正常。

+0

我不知道我明白了.. 那麼當我在添加/刪除程序中點擊修復按鈕時究竟發生了什麼? – Jippers

+0

我編輯了我的回覆以澄清:MSI爲內部結構保留.msi的緩存副本,但不將其緩存用作實際文件的源。這需要不同的緩存。 –

+0

要進入一些細節,修復會嘗試將已安裝的產品恢復到MSI文件中所定義的初始狀態,這可能涉及重新安裝缺失或損壞的文件。這需要訪問安裝它的原始位置處的原始MSI文件。它看起來像你使用一個設置,將MSI文件放到一個臨時位置,並從那裏安裝它,這不是你應該做的。 – PhilDW

相關問題