本帖最后由 macenjie 于 2010-03-09 07:46:06 编辑

解决方案 »

  1.   

    貌似对程序集签个名应该就可以自动安装到GAC
      

  2.   

    客户端是没有visualstudio的,故没有gacutil.exe 你把这个和你的安装文件一起打包 客户端不就有了
      

  3.   

    通过调用 System.Environment.Version 静态属性来判断版本号注册表
      

  4.   

    客户端程序运行总要装.net framework的,安装的时候顺带安装进去。 
    gacutil.exe 文件的路径不就有了。
    做个dll注册的批处理文件。
    程序启动时,判断是否注册过,未注册就调用批处理文件注册。
      

  5.   

    用最新版本的windows installer做一个安装包就行了,它可以让你指定哪些assembly需要进gac。
    或者是在你的程序同目录下创建一个.gac文件,内容是要放进gac的assembly全路径,1行1条,程序执行时runtime会自动把这些dll安装进gac。
      

  6.   

    偶的意思是 你可以用一个独立的  gacutil.exe  拷贝到你的项目一指定路径下,一起将你的项目打包,你可以在安装程序时加上几句注册的代码就会自动执行注册了 dll了比如:string filepath=Application.StartupPath+"\\gautil.exe";
    string arguments="-u YourDllName";
    ProcessStartInfo prsInfo=new ProcessStartInfo(filepath,arguments);
    string result=Proess.Start(prsInfo).StandardOutput.ReadToEnd();
    arguments="-i\""+Application.StartupPath+"\\YourDllName.dll";
    prsInfo=new ProcessStartInfo(filepath,arguments);
    result=result+Proess.Start(prsInfo).StandardOutput.ReadToEnd();
      

  7.   

    没有强命名的dll装不进去 怎么强命名啊???
      

  8.   

    也遇到这样的问题,貌似有几种办法可以解决,制作批处理程序,还有就是把gacutil.exe 打包进程序。