我已经开发了一个大型的Office应用程序级加载项,它就像一个魅力,但我在理解技术基础时遇到了问题。
- 那么VSTO和PIA到底有什么用呢?
- VSTO是否只为Visual Studio提供了适当的项目类型,仅此而已?
- 主互操作程序集 (PIA) 是否只是用于访问 Office 对象模型的某种包装器?
- 它们都提供了比我所知道的更多的东西和功能吗?
VSTO 是通过 PIA 向 Office 子系统提供挂钩(解决方案加载程序)的应用程序运行时。PIA 是构建 Office 的非托管 COM API (IDTExtensibility2
) 的包装器。PIA 提供托管访问,并在 VSTO 运行时之上运行。
VSTO 附带的项目类型用于生成在运行时检测依赖项和加载外接程序所需的部署清单。
PIA 提供对 COM 对象模型的托管访问,但如果你想要更好地控制解决方案的加载方式,它也支持非托管访问(因此你始终具有 VSTO 运行时,但并不总是 PIA)。
此 MSDN 链接很好地概述了 PIA 和 VSTO 从另一个加载选项(PIA 之外)IDtExtensibility2