Installer.LastErrorRecord 方法
Installer 对象的 LastErrorRecord 方法返回一个 Record 对象,该对象包含生成错误记录的函数中最新错误的错误参数。
语法
Installer.LastErrorRecord()
parameters
此方法没有任何参数。
返回值
此方法不返回值。
备注
对生成错误记录的任何函数执行此函数后,Record 对象将重置。
只有以下指定的函数会生成错误记录:
- OpenDatabase 方法(Installer 对象)
- Commit
- OpenView
- 导入
- 导出
- Merge
- GenerateTransform
- ApplyTransform
- Execute
- 修改
- 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 |