0

背景:

我想出了一个想法,这将使我工作的公司的事情变得更容易。他们甚至似乎对这个想法感到兴奋。这个想法是为 Outlook 制作一个插件来帮助完成一项任务。所以在做了一些研究之后(显然,还不够)。我下载了 VS2010 pro 的试用版并创建了一个 VSTO 插件。

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

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

问题的关键:

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

4

3 回答 3

0

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

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

或者,Office 主互操作程序集应位于安装了相关版本的 Office 的任何计算机上(至少对于 >= Office 2007)。但在某些情况下它不会,所以你必须涵盖这种可能性。VSTO Redistributable 应该已经安装在任何装有 Office 2010 或 2013 的计算机上。对于 Office 2007,您需要安装它。但同样,安全总比后悔好,所以在这两种情况下都应该将它包含在安装程序中。

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

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

于 2013-08-24T08:46:24.030 回答
0

Outlook API 不是本机 .NET 框架。为了与之交互,.NET 依赖于 marshaling 和 interrop 程序集,因此更容易出错和不稳定。

从到目前为止我所看到的 Outlook API 经验来看,我会坚持使用 VBA,如果遇到很多麻烦,你应该考虑检索一个公开 Outlook 扩展 MAPI 的第三方库。

于 2013-08-24T03:03:18.550 回答
0

我强烈推荐Add-in Express。他们拥有的工具超越了微软通过 Visual Studio 提供的工具。

它们用于 Outlook 开发的功能大大减少了构建 Outlook 加载项所需的工作量

于 2013-08-25T04:39:17.017 回答