升级vs2010我碰到的一个问题,以及解决方法

Categories: 未分类
Comments: 4 Comments
Published on: 2010 年 05 月 07 日

5.1前,把CSDN论坛的源代码升级成VS2010,升级后出现了一个怪异的问题,部署企业服务时,一会好,一会会报找不到文件:未能加载文件或程序集:“Interop.COMAdmin"。很是怪异,这个问题一直拖到今天在发现问题所在,并解决了。这个问题托这么久才解决跟一会正常一会异常很有关系。

产生的原因如下:

由于企业服务用到的组件都必须部署在GAC中,我在升级后,我企业服务部署的代码就有如下的写法,下面只是罗列出错地方的代码:

********  部署其中一个用到的组件到GAC 的DOS 命令:
c:
cd %VS100COMNTOOLS%../../../
cd "Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\"
gacutil.exe  /if $(TargetPath)
******************************  安装企业服务 的DOS 命令:
"%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe"  $(TargetPath)

问题就出在上面代码中, 部署到GAC 用到的 gacutil.exe 是 .NET Framework 4.0 的 gacutil.exe。 安装企业服务的 InstallUtil.exe 用的是 .NET Framework 2.0 的。 2.0 和 4.0 的 .NET Framework  的工具互相干扰,就导致了上面提到的一会正常,一会不正常的情况出现了。

解决方法就是统一 gacutil.exe  , InstallUtil.exe  这两个工具使用的 .NET Framework 的版本, 就一切问题都迎刃而解了。

4 Comments
  1. 这两个工具为什么会产生这样的效果呢 ? Interop.COMAdmin 是哪个组件的dll,有点像关于平台调用的.有时能找到,有时却找不到,这个问题应该是可以调试根踪的?你可以试一下.

  2. 这两个工具为什么会产生这样的效果呢 ? Interop.COMAdmin 是哪个组件的dll,有点像关于平台调用的.有时能找到,有时却找不到,这个问题应该是可以调试根踪的?你可以试一下.

  3. ghj1976说道:

    这是调用一个 com 接口,

    具体来说就是调用的: COM + 1.0 Admin Type Library 这个 com 组件,
    用于编程控制企业服务的一些设置

  4. 那你这个com互操作dll应该是在你的本地bin目录下吧.而你的企业库dll被放到了gac中,而它找不到本地这个路径吧.

Comments are closed.

Close Print