vba或vsto或.. outlook开发

时间:2013-08-24 01:19:15

标签: vba outlook vsto

背景

我想出了一个能让我工作的公司更轻松的想法。他们甚至对这个想法感到兴奋。我们的想法是为Outlook添加一个插件以帮助完成任务。所以经过一些研究(显然,还不够)。我下载了VS2010 pro的试用版,并创建了一个VSTO插件。

创建插件后,是时候将其打包用于小型测试部署。就在那时我发现这是一件非常困难的事情。似乎MS不提供运行VSTO所需的运行时的Office 2010,所以我也必须打包它。在公司环境中,这不是一件简单的事情。

所以,我可能不得不回到绘图板。

问题的核心:

我以前从未创建过办公室插件,我真的想要更多的“插入式”解决方案。我不确定VBA是否是正确的解决方案。它似乎更像是一个“文档”级别的应用程序(或宏?)。有没有人知道什么是最好的解决方案呢?

3 个答案:

答案 0 :(得分:0)

Outlook API不是本机.NET框架。为了与之交互,.NET依赖于编组和插入程序集,从而使其更容易出错和不稳定。

根据我迄今为止看到的outlook API经验,我会坚持使用VBA,如果遇到很多麻烦,你应该考虑检索暴露Outlook扩展MAPI的第三方库。

答案 1 :(得分:0)

NetOffice非常好 - 它是一组托管的.NET库,可以使用Office处理COM API,只需要安装XCopy。

最好的部分是它跟踪你通过COM访问对象时创建的所有运行时可调用包装器('RCWs'),并在你处置顶级对象(大多数情况下是应用程序)时自动释放它们,所以你不会得到一个孤立的COM'句柄'的问题,阻止你关闭Office。

或者,Office主互操作程序集应位于安装了相关Office版本的任何计算机上(至少对于> = Office 2007)。但是有些情况下不会这样,你将不得不承担这种可能性。 VSTO可再发行组件应已安装在具有Office 2010或2013的任何计算机上。对于Office 2007,您需要安装它。但同样,安全性比抱歉更好,所以在两种情况下都应该将它包含在安装程序中。

有关部署选项的详细信息,请查看http://msdn.microsoft.com/en-us/library/bb386179.aspx

至于VBA,我没有Outlook插件的经验,所以我把它留给其他人来解释。其他VBA Office应用程序插件(至少Excel / Word / Visio / PPT - 不确定其他人,因为我没有使用它们)可以使用注册表项或通过XCopying插件安装到受信任位置,然后告诉用户打开选项/管理插件并勾选复选框。

答案 2 :(得分:0)

我强烈推荐Add-in Express。他们的工具超出了Microsoft通过Visual Studio提供的工具。

Their features for Outlook development大大减少了构建Outlook加载项所需的工作量