Installer.LastErrorRecord 方法
Installer物件的LastErrorRecord方法會傳回Record物件,其中包含產生錯誤記錄之函式中最近錯誤的錯誤參數。
語法
Installer.LastErrorRecord()
參數
這個方法沒有任何參數。
傳回值
這個方法不會傳回值。
備註
Record物件會在產生錯誤記錄的任何函式執行之後重設。
只有下列指定的函式會產生錯誤記錄:
- (Installer 物件) OpenDatabase 方法
- Commit
- OpenView
- 匯入
- 出口
- 合併
- GenerateTransform
- ApplyTransform
- 執行
- 修改
- SetStream
- SummaryInformation
- SourcePath
- TargetPath
- ComponentCurrentState
- ComponentRequestState
- FeatureCurrentState
- FeatureRequestState
- FeatureCost
- FeatureValidStates
- SetInstallLevel
下列 VBScript 範例會使用 對 OpenDatabase 的呼叫,示範如何從支援 LastErrorRecord 方法的其中一個方法或屬性取得擴充錯誤資訊。 範例會在 OpenDatabase 方法失敗時建構錯誤訊息。 Err物件是用來判斷是否遇到錯誤。
Const msiOpenDatabaseModeReadOnly = 0
On Error Resume Next ' defer error handling
Dim installer
Set installer = CreateObject("WindowsInstaller.Installer")
' attempt to open the non-existent MSI database
Dim database
Set database = installer.OpenDatabase("c:\nonexistent.msi", msiOpenDatabaseModeReadOnly)
' test for error
If Err.Number <> 0 Then
Dim message, errorRec
message = Err.Source & " " & Hex(Err.Number) & ": " & Err.Description
If Not installer Is Nothing Then
' try to obtain extended error info
Set errorRec = installer.LastErrorRecord
If Not errorRec Is Nothing Then message = message & vbNewLine & errorRec.FormatText
End If
MsgBox message
' PLACE ADDITIONAL SCRIPTING CODE HERE TO LOG AND/OR DISPLAY THE MESSAGE AND
' DETERMINE WHETHER TO CONTINUE PROCESSING ANYTHING ELSE
End If
規格需求
需求 | 值 |
---|---|
版本 |
Windows Server 2012、Windows 8、Windows Server 2008 R2 或 Windows 7 上的 Windows Installer 5.0。 Windows Server 2008 或 Windows Vista 上的 Windows Installer 4.0 或 Windows Installer 4.5。 Windows Server 2003 或 Windows XP 上的 Windows Installer |
DLL |
|
IID |
IID_IInstaller定義為 000C1090-0000-0000-C000-000000000046 |