【问题标题】:How does Microsoft Office doesn't require .NET 3.5 or 4.5, while VSTO addins require them?Microsoft Office 为何不需要 .NET 3.5 或 4.5,而 VSTO 插件需要它们?
【发布时间】:2018-11-30 09:42:30
【问题描述】:

在为 Microsoft Office 构建任何插件(在 Visual Studio 中)时,我们必须选择目标 .NET FRAMEWORK。 实际上,在我安装了MS OFFICE 2010 的几台PC 上,它既不需要.NET 3.5,也不需要4.5。但是,当尝试在同一台 PC 上安装我的加载项时,它会请求 .NET

是否不可能使插件像 MS-OFFICE 一样工作(无需请求 .NET 框架)?

【问题讨论】:

  • 以未连接到 .NET 的语言(例如 VBA 或 C++)在不使用 VSTO 的情况下创建外接程序。

标签: ms-office vsto office-addins


【解决方案1】:

回答提出的问题

Microsoft Office 如何不需要 .NET 3.5 或 4.5,而 VSTO 插件需要它们吗?

Microsoft Office 基于 COM 并使用 C 语言(C、C+、C++,但不是 C#)编写,因此不需要 .NET Framework。 Office 比 .NET 早了十多年!

如果您使用 Visual Studio .NET 开发插件,则需要在计算机上安装为 .NET 项目选择的 .NET Framework 版本。例如,VSTO 就是这种情况。

经典的 VB6 曾经是创建 Office 插件的常用工具。它不需要 .NET,因为它是一种 COM 编程语言——这就是为什么它没有得到维护或更新,以便它的程序可以在更新版本的 Windows(64 位)上运行。所以它被废弃了。

任何可以利用构建 Office COM 插件基础的 IDTExtesibility2 接口 的编程语言都可以(至少在理论上)用于为 Office 编写 COM 插件。有必要研究和理解该接口,以及所选编程语言与 Windows COM 环境的关系,以便对 Office 加载项进行编程。

您正在考虑的类型的 Microsoft 插件不能使用 VBA 开发(正如评论中所建议的那样) - VBA 必须在主机应用程序中运行,并且包含在属于主机应用程序的文档中。 VBA 能够自动化其他 Office 应用程序,但这不符合加载项的条件。在大多数 Office 应用程序中,VBA 可以用作该应用程序的“加载项”,方法是以某种方式加载代码容器文档,使代码可用于在 Office 应用程序中打开的所有文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-07
    • 2015-05-16
    • 1970-01-01
    • 2013-03-06
    • 2010-09-06
    • 2019-06-09
    • 1970-01-01
    相关资源
    最近更新 更多