在InstallUtil工作流上捕获异常

时间:2016-03-23 16:57:55

标签: c# .net installutil

在C#代码上,我在使用installUtil安装服务时遇到错误。 我正在使用自己的安装程序。 安装程序上的所有代码和installUtil的参数都可以,因为90%的情况下安装正常。 失败的场景是在我的CI作业下,我使用相同的代码并行安装多个服务,而且我无法捕获异常。 我所拥有的只是记录以下消息:

  

System.Configuration.Install.AssemblyInstaller安装程序的Commit阶段发生异常。   System.InvalidOperationException:集合已被修改;枚举操作可能无法执行。   安装的Commit阶段发生异常。此异常将被忽略,安装将继续。但是,安装完成后,应用程序可能无法正常运行。

我已经在所有阶段和方法中放置了日志我能够覆盖,在我自己的安装程序类上,我也得到了一些System.Configuration.Install.Installer的源代码,我也在那里记录但是没有...

在Install方法之后和Commit之前发生异常。

在执行System.Configuration.Install.Installer的Commit阶段之前,有一些代码用于输出:

记录如下:

安装阶段成功完成,提交阶段正在开始。 查看日志文件的内容...... 承诺组装.... 受影响的参数是:.... System.Configuration.Install.AssemblyInstaller的Commit阶段发生异常... 提交阶段成功完成。 事务处理安装已完成。 在安装的提交阶段发生了异常。

正如您所看到的,异常发生在安装阶段之后和Commit阶段之前,但在我的自定义Installer类或System.Configuration.Install.Installer

的所有重写方法上都没有。

任何人都可以给我一些关于如何捕获此异常或更好地查看服务安装期间执行的完整工作流程的提示吗?

感谢

1 个答案:

答案 0 :(得分:0)

在查看InstallUtil源代码之后,我们发现/ LogFile参数经过仔细使用并且处于良好的位置,通过运行实例来完成工作以获得专用的日志文件。在我们的测试场景中,命令行没有很好地构建,LogFile参数被忽略......