catch(Exception generic)
{
EventLog.WriteEntry("SetupDB",generic.Message,
EventLogEntryType.Error) ;
throw new InstallException(generic.Message);
}
}
在清单 2 中,请注意方法的签名。它有一个名为 stateSaver 的 IDictionary 参数。它会在 Install、Commit、Rollback 等过程中保持该安装程序所需的信息。最初,此值为 null。只有当您调用 base.Install(StateSaver) 时,IDictionary 对象才会反映过程的当前状态。因此每个重写方法都需要调用基类,以便初始化 stateSaver。如果您在各个步骤中执行多个自定义安装程序,那么这就变得非常重要。接下来的步骤是获取通过 Custom Actions 属性 CustomActionData 传递的参数。
StringDictionary parameters = Context.Parameters;
这个 Context 属性非常重要,因为它可返回 System.Configuration.Install.InstallContext。甚至在执行 Install 方法之前,该安装程序就已经设置了安装程序的 Context 属性。表 2 指出了 InstallContext 的一些重要成员。
表 2. InstallContext 的一些重要成员。
成员 说明
LogMessage(string)
记录指定记录器中的任何消息。该日志的路径是在安装程序的构造函数中指定的。日志文件的名称/值参数可以传递到自定义安装程序中。
Parameters
返回包含名称/值对的 StringDictionary。这是一个重要属性,它将返回 CustomActionData 中的命令行名称/值对。
文章来源于领测软件测试网 https://www.ltesting.net/