VS2005开发的C#winform程序引用了office的excel,outlook等组件,用clickonce发布的时候如果客户端没装office时程序不能执行.
想请教在客户端没有安装office的情况下怎么让发布的程序能正常运行,具体需要怎么做.

解决方案 »

  1.   

    把office的dll从有安装office的机器上的GAC中拷贝出来,添加到项目中,到时候不要引用GAC中的dll,直接引用项目中的dll
      

  2.   


    虽然麻烦点..但应该可行...我们目前的作法:要求客户安装OFFICE,提供盗版下载..汗ing...
      

  3.   

    GAC中的Office Dll是指这个(Microsoft.Office.Interop.Owc11)?还是还有其他的Dll?
      

  4.   

    Win2003系统GAC是不是指Windows\assembly目录啊,里面的文件都不支持copy操作,请教你们是怎么拷出来的?
      

  5.   


    我把引用outlook的Dll拷出来了,发布后在客户端安装完成后运行程序,出现检索com类工厂中CLSID为...的组件失败.最后还是不能在客户端发送邮件,请问怎么解决
      

  6.   

    老师给的东西,不知道能不能帮上忙,你自己看吧。
    引用Microsoft.Office.Interop.Excel出现的问题
    08-06-11 14:41   View:4296 
    ________________________________________
    操作背景:asp.net操作Excel
    出现问题:在本地添加引用(com):Microsoft Office 11.0 Object Library,并写好程序调试正常,部署到服务器时,出现异常 Excel.Application不是对象.
    初步诊断:服务器没有安装Excel组件
    第一步尝试解决:对服务器安装Excel等Office组件,进一步测试程序:失败!
    第二步尝试解决:将Excel.exe生成Interop.Excel.dll,然后用sdk引用该Dll,编译成功,测试程序:成功!
    原因:本地引用的com不会在程序的bin目录生成dll文件,而程序是根据路径在寻找dll的.部署到服务器上时,假如Excel等dll与本地路径不一致,将会抛出异常,定义的Excel对象肯定是不存在的.
    具体方法:
    1、如何生成Interop.Excel.dll?
         进入你的visual studio的sdk下的bin目录,找到TlbImp.exe文件,如果没有,请用光盘安装此文件,详细说明请参照MSDN。
         命令行(cmd)进入bin目录,运行TlbImp /out:Interop.Excel.dll Office安装目录+Excel.exe
         此时很可能会报错:TlbImp   error:   Unable   to   locate   input   type   library:   'c:\program files\mcrosoft offi   
      ce\office\EXCEL.EXE'
         此问题很有可能是TlbImp的bug,不支持空格式的路径;(具体原因不明)不要紧,将Excel.exe拷贝入bin目录,直接运行TlbImp /out:Interop.Excel.dll Excel.exe,提示“Type library imported to Interop.Excel.dll路径”
         在bin目录下找到Interop.Excel.dll文件。在你的visual studio里将其引用即可。
    2、如果是excel2000或excel2002怎么办?
      如果是Excel2000,则将Excel.exe改成Excel9.olb
      Excel2002同2003
      

  7.   

    我是了 不好使呢 提示 没有找到com类工厂错误