在C#中动态加载和使用COM对象
作者:互联网
我有一个C#项目,我想访问MS Outlook,如果它安装在客户端的机器上. “访问前景”部分是通过引用outlook COM对象并从那里开始完成的.我的问题现在是“如果已安装”部分.目前,我的项目没有在没有安装outlook的机器上编译,所以我假设我不得不引用outlook组件,而是在检测到outlook存在后动态加载和使用它,但我还没有找到了一种方法来做到这一点.我是否正确,是否有人对如何做到这一点有任何暗示?
谢谢.
编辑:已解决.根据Hans Passant在关于使用办公室PIA的一条评论中给出的建议,证明是阻力最小的路径.在我的办公室机器上获得PIA时遇到了一些困难,但是使用this问题的接受答案就克服了这个问题.
解决方法:
如果没有Outlook COM对象,您绝对无法在计算机上编译程序集,但这并不意味着您的应用程序将完全无法在没有Outlook的计算机上运行 – 只是尝试创建或使用Outlook COM对象将导致抛出失败/异常.
根据this question,检测COM对象是否存在的最佳方法是尝试实例化它并在未安装它的情况下捕获结果异常.
标签:c,com,com-interop,outlook-object-model 来源: https://codeday.me/bug/20190630/1340085.html