【问题标题】:InstallUtil fails on installing custom Windows ServiceInstallUtil 安装自定义 Windows 服务失败
【发布时间】:2013-06-27 06:01:50
【问题描述】:

我正忙于编写自定义 Windows 服务来处理服务器上的 MSMQ 消息,但安装(使用 InstallUtil)一直失败并出现以下错误:

“System.InvalidOperationException:无法获取安装程序类型 'x'.exe 程序集。内在异常 System.Reflection.ReflectionTypeLoadException 被抛出 以下错误消息:无法加载一个或多个请求 类型。检索 LoaderExceptions 属性以获取更多信息。”

我在服务中使用了 3 个我自己的程序集。所有这些都设置为“复制本地”,所有其他引用的程序集都在 GAC 中。我已验证不在 GAC 中的所有其他引用程序集都在包含我的服务的 .exe 文件的文件夹中。

我也尝试过签署我的程序集(如果这值得...)

我也在 Google 上查看过,但在大多数情况下,问题要么通过服务包解决,要么安装一些专有软件,这显然解决了缺少依赖项的问题。

我编写了一个简单的 POC 服务,没有引用任何运行良好的“外部”程序集...

我正在 Windows 7 机器上进行开发和测试。

有什么想法吗? 谢谢!

编辑: 好吧,很奇怪...我使用 PostSharp 进行异常处理和日志记录...我删除了对 PostSharp 和我的方面的引用,并且它安装没有问题... o_O 为什么 PostSharp 之类的东西不能很好地与 Windows 服务配合使用?

【问题讨论】:

    标签: c# visual-studio-2012 windows-services installutil


    【解决方案1】:

    在没有安装程序的情况下,您是否尝试过向所有依赖程序集注册您的服务?你成功注册了吗? 如果这有效,那么 - 您的服务注册操作是否是安装创作步骤中的安装后完成操作?

    【讨论】:

      【解决方案2】:

      对不起我的英语。我在这个问题上工作了 2 天,我发现 installutil 仅在 installutil 和服务和依赖项文件在一个目录中时才有效。

      installutil 服务 -> 工作正常 installutil ServicePath\service -> 如果 ServicePath 目录中的依赖项不工作。

      【讨论】:

        【解决方案3】:

        好的,我发现了问题...我将相同的 PostSharp 方面应用到一个方法两次。所以我有Method1Method2,两者都应用了[MyException] 方面。 Method1 调用 Method2 因此该方面被“应用”了两次,这在服务安装程序中并不顺利。我从Method2 中删除了方面,一切正常!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-05-28
          • 2011-06-15
          • 2010-12-07
          • 1970-01-01
          • 2012-05-04
          • 2014-06-14
          • 2010-09-07
          相关资源
          最近更新 更多