Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > .NET > C#.NET > 编写自定义安装类可能会碰到的一个小问题
【标  题】:编写自定义安装类可能会碰到的一个小问题
【关键字】:
【来  源】:http://blog.joycode.com/ghj/archive/2006/06/08/77056.aspx

编写自定义安装类可能会碰到的一个小问题

Your Ad Here

我们可以在自己的服务程序或者企业服务程序中,编写自定义安装类(从System.Configuration.Install.Installer 类中派生)。

然后我们就可以用InstallUtil.exe 或者 InstallUtil.exe  /u   来安装或者卸载这个组件。我们重载System.Configuration.Install.Installer 类的Install和Uninstall方法,

public override void Install(IDictionary stateSaver)
public override void Uninstall(IDictionary savedState)

并且在这些方法中借用RegistrationHelper 、RegistrationConfig 等配置类,就可以让我们组件实现很多丰富的安装功能。

比如如果是企业服务,安装的时候,自动把组件所在目录设置成ApplicationRootDirectory。

又比如把一些相关组件放到GAC中等等。

不过我们在卸载的时候,有可能会碰到类似下面的异常:

试图在 User.EnterpriseServices.dll 程序集中查找安装程序时发生异常。
System.Reflection.ReflectionTypeLoadException: 无法加载一个或多个请求的类型。有
关更多信息,请检索 LoaderExceptions 属性。
正在中止安装 User.EnterpriseServices.dll。
在卸载 System.Configuration.Install.AssemblyInstaller 安装程序的过程中发生异常。

System.InvalidOperationException: 无法获得 User.EnterpriseServices.dll 程序集中的安装程序类型。
引发了内部异常 System.Reflection.ReflectionTypeLoadException,错误信息如下: 无法加载一个或多个请求的类型。有关更多信息,请检索 LoaderExceptions 属性。

在卸载的过程中发生异常。将忽略该异常并继续卸载。但是,在卸载完成之后应用程序可能未完全卸载。

这时候一般产生的原因是你在自己配置的安装或者卸载的时候得顺序有问题。比如一些企业服务组件要加载的一些组件被你先从GAC中卸载了,就可能会导致这个异常,只要改变一下卸载或者安装的顺序,则就可以避免这个错误发生。

Bug?用 DataSource 属性绑定的 GridView 的排序问题:【上一篇】
WSS引发Debugging is not supported under current trust level settings错误:【下一篇】
【相关文章】
没有相关文章
【随机文章】
  • 电盲厨房战记
  • vim7中的快速查找
  • 页面跳转问题
  • QoS流量产生器
  • 随风而去
  • 发现几个Vista 5472&Office 2007 beta2的bug
  • RAID6原理 (转载)
  • Problem in installing MySQL on RHEL AS3 Update3
  • shell入门基础必备
  • 以物件导向方法描述网路电脑辅助教学模型
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.