COM添加和VSTO添加之间有什么区别

时间:2012-01-25 23:11:22

标签: com vsto

我正在尝试为Outlook开发插件,我找到了一个提供商http://www.add-in-express.com。但是,他们在一个(http://www.add-in-express.com/add-in-net/index.php)中有两个产品,它们允许在使用VS 2010和.Net Framework 4.0中创建COM添加(如何是可能的,我一直认为COM只能在VB6中创建,否则你必须创建一个COM可调用包装器(CCW)。

另一个产品是VSTO Tools(http://www.add-in-express.com/add-in-vsto/index.php),它也使用.Net Framework 4.0,这完全令人困惑。

请帮助我理解。

此致 Mohit Thakral

1 个答案:

答案 0 :(得分:10)

VSTO使用COM wrappers (RCW)通过托管API与Office进行通信。不幸的是 - 与Office产品直接通信的唯一已知方法是使用COM组件,因为这是Office构建的技术。即使使用VSTO,您仍然需要了解COM对象的生命周期 - 它们不会为您封装它(您仍需要调用Marshal.ReleaseCOMOjbect )。

深入了解VSTO的一个很好的资源是VSTO 2007 book by Addison-Wesley。如果您使用VSTO路线 - 您还应该拾取VSTO Extension Library VSTO_PTExtLibs.exe ),这样可以使用扩展方法减轻COM参数限制的痛苦。

我个人并未发现需要使用AddIn-Express,但如果您不想花时间学习VSTO框架,您可能会发现它有所帮助。这种选择还取决于解决方案的复杂性以及您可用的时间和资源。