InstallUtil在安装自定义Windows服务时失败

时间:2013-06-27 06:01:50

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

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

  

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

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

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

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

我写了一个简单的POC服务,没有引用任何工作正常的“外部”程序集......

我正在开发和测试Windows 7计算机。

有什么想法吗? 谢谢!

修改 好奇怪...我正在使用PostSharp进行异常处理和日志记录...我删除了对PostSharp和我的方面的引用,并且它安装没有问题... o_O 有什么理由说像PostSharp这样的东西在Windows服务中不能很好地运行吗?

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

好的,我发现了问题......我对方法应用了两次相同的PostSharp方面。我有Method1Method2,两者都应用了[MyException]方面。 Method1调用Method2,因此该方面已“应用”两次,但与服务安装程序无关。我从Method2删除了方面,一切正常!

答案 2 :(得分:0)

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

installutil服务 - >工作良好 installutil ServicePath \ service - >如果ServicePath目录中的依赖项不起作用。