什么是VSTO?

时间:2016-02-05 13:24:25

标签: vsto office-interop office-addins

我有一些Excel和Word 2007-2016的加载项。而且我不了解一些事情。我的项目使用了一些dll,比如Microsoft.Office.Tools.Common,Office.dll,一些excel,word和common interop。并且这些文件可以在几个地方同时找到,它们的不同版本(如程序文件,windows / assembly,windows / Microsoft.Net / assembly)。所以我不知道要使用哪个版本。而且,如果用户安装了VSTO,我想他有这些文件。那我为什么需要提供呢?安装VSTO时我们安装的是什么?哪个部分适用于哪个安装位置来自哪个组件?我想我做得不对,因为我发现Excel同时加载了同一个文件的两个不同版本。

1 个答案:

答案 0 :(得分:2)

这些都是很多问题,其中很多都非常依赖于您提供的解决方案......

PIA(“办公室dll”)的情况相对明确:

  • 您不需要(也不应该)使用VSTO解决方案分发Office PIA,可能的例外情况是2007年和2010年。在这些版本中,安装.NET支持是可选的,而不是默认的。这就是为什么这些版本有可再发行的原因,而不是其他版本。您的安装程序需要检查它们是否存在(与VSTO运行时和.NET Framework的版本相同),并仅在必要时安装。
  • Office始终将PIA安装到GAC中,您的解决方案将在那里找到它们。在开发者计算机上引用它们没有区别。
  • GAC中的PIA仅可通过Visual Studio对话框中的COM选项卡进行插入引用。许多.NET开发人员都没有在那里找到它们,因此Microsoft使用VSTO提供(ONE)单组PIA并将它们复制到Visual Studio文件夹,以便它们显示在对话框的.NET选项卡中。唯一的问题是,当该版本的Visual Studio发布时,您只获得Office版本的“当前”PIA,这意味着您可能获得印象针对任何其他版本进行开发,因为您没有在.NET选项卡中找到PIA(但它们将位于COM选项卡中)。
  • 经验法则:始终<始终使用您计划支持的最早版本的Office开发代码。这有两个原因:1)您只能使用可用于所有Office应用程序版本的功能(Office通常是向后兼容的); 2)Office旨在将对较旧PIA集的引用迁移到较新集,但不是相反。

在MSDN上的VSTO论坛顶部有一篇关于部署的好文章,它针对各种版本的VSTO和Office“排序”了很多要求:https://social.msdn.microsoft.com/Forums/vstudio/en-US/1666d2b0-a4d0-41e8-ad86-5eab3542de1e/deploying-office-solutions-to-end-user-computers?forum=vsto用于定位2007-2010的插件。有关更高版本的信息,请参阅MSDN文档:https://msdn.microsoft.com/en-us/library/bb386179.aspx