简体   繁体   English

VSTO与主要互操作程序集有什么区别?

[英]VSTO vs. Primary Interop Assemblies, what's the difference?

I already developed a large Office application-level add-in and it works like a charm, but I have problems understanding the technical basis. 我已经开发了一个大型的Office应用程序级加载项,它就像一个魅力,但我在理解技术基础时遇到了问题。

  1. So what exactly are VSTO and the PIAs good for? 那么VSTOPIA到底有什么用呢?
  2. Does VSTO just provide a proper project type for Visual Studio and that's it? VSTO是否只为Visual Studio提供了适当的项目类型 ,那就是它?
  3. Are the Primary Interop Assemblies (PIA) just some kind of wrapper for accessing the Office Object Model ? 主互操作程序集 (PIA)是否只是某种用于访问Office对象模型的包装器?
  4. Do both of them provide more things and features than I am aware of? 它们都提供了比我所知更多的东西和功能吗?

VSTO is the application runtime that provides hooks ( solution loader ) into the Office subsystem via PIA. VSTO是应用程序运行时 ,它通过PIA向Office子系统提供挂钩( 解决方案加载器 )。 PIAs are wrappers around the unmanaged COM API ( IDTExtensibility2 ) that Office is built from. PIA是围绕构建Office的非托管COM API( IDTExtensibility2 )的包装器 PIAs provide managed access and run above the VSTO runtime. PIA提供托管访问并在VSTO运行时之上运行。

VSTO comes with project types that build the deployment manifest required for detecting dependencies and loading your Add-In at runtime. VSTO附带了项目类型,这些类型构建了在运行时检测依赖关系和加载加载项所需的部署清单

The PIAs provide managed access to the COM object-model, but it also supports unmanaged access should you want more control over how your solution is loaded ( hence you always have VSTO runtime, but not always PIAs ). PIA提供对COM对象模型的托管访问 ,但如果您希望更好地控制解决方案的加载方式,它还支持非托管访问因此您始终拥有VSTO运行时,但不总是PIA )。

This MSDN link provides a great overview of the evolution of PIAs and VSTO away from IDtExtensibility2 which is another loading option ( outside of PIAs ) 这个MSDN链接提供了远离IDtExtensibility2 的PIA和VSTO演变的概述, IDtExtensibility2是另一个加载选项( 在PIA之外

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 鉴于选择,混合模式程序集与单独的互操作DLL的优缺点是什么? - Given the choice, what are the pros/cons of mixed-mode assemblies vs. separate interop DLLs? Microsoft Office应用程序的主互操作程序集 - Primary Interop Assemblies for Microsoft Office Applications GAC 中的 stdole.dll 与微软的 Nuget package 有什么区别? - What's the difference between stdole.dll in the GAC vs. Microsoft's Nuget package? DecodePixelWidth Vs.有什么区别 ScaleTransform? - What is the difference between DecodePixelWidth Vs. ScaleTransform? 通过COM / Interop与通过.NET应用程序调用.NET程序集时,是否为引用程序集使用了不同的加载上下文? - Are different Load Contexts used for referenced assemblies when calling a .NET assembly through COM/Interop vs. through a .NET Application? Office 2007的主要互操作程序集(PIA)-32/64位? - Primary Interop Assemblies (PIA) for Office 2007 - 32/64bit? .NET项目中的Office主互操作程序集的多个版本 - Multiple versions of Office Primary Interop Assemblies in .NET project 如何判断系统上是否安装了Office Primary Interop程序集? - How to tell if Office Primary Interop Assemblies are installed on a system? 所有内部程序集与具有外部依赖项的程序集 - All internal assemblies vs. assemblies that have external dependencies .NET Interop IntPtr与ref - .NET Interop IntPtr vs. ref
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM