本人做了一个WinForm用户控件,想用InstallShield发布,同时要求发布到Gac中,并且在目标机器上的vs.net环境中的控件列表中可以直接拉出来,不要通过浏览去找,一些第三方商业控件都是这么做的,但是看了一些贴子都太过复杂了,我觉得这个问题InstallShield做起来应该很简单,有哪位做过?

解决方案 »

  1.   

    .NET控件最好用VS.NET的部署项目做一个安装程序,这样当用户卸载控件时可以自动删除GAC中的程序集。下面是我的一些经验:1、给控件添加强名称后,才能添加到GAC。2、同一个Assembly,在目标记算机上分别安装到两个地方,一个是Program Files下,另一个是“Global Assembly Cache文件夹”。3、在目标计算机上的注册表中添加一些键值,就可以让你的.NET控件出现在.NET Framework组件列表中,不用通过浏览去找。例如我的控件会在用户的计算机上添加下面的键值:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\AssemblyFolders\FlexCell Grid Control for .NET
       
    名称    类型    数据
    (默认)  REG_SZ  C:\Program Files\FlexCell Technologies\FlexCell.NET\Bin\
      

  2.   

    Installshield X 版本不是很难用呀,到处点点看,就知道了呀。
      

  3.   

    junwhj(http://www.grid2000.com/cn)
    谢谢你的回答,写注册表,我也知道,但总觉得自己写有点愚昧,好像要写到好多地方,应该是安装软件包干的事情,偶现在就是想找找InstallShield中有无这样的选项
      

  4.   

    VS.NET的部署项目写注册表很简单的,在解决方案资源管理器中可以看到一个注册表图标,不需要写程序。