为什么 Microsoft Office 不需要 .NET 3.5 或 4.5,而 VSTO 插件需要它们?
How does Microsoft Office doesn't require .NET 3.5 or 4.5, while VSTO addins require them?
为 Microsoft Office 构建任何插件(在 Visual Studio 中)时,我们必须选择目标 .NET FRAMEWORK
。
实际上,在我安装了 MS OFFICE 2010
的几台 PC 上,它既不需要 .NET 3.5
也不需要 4.5
。但是,在同一台 PC 上尝试安装我的加载项时,它请求 .NET
.
是否无法使插件像 MS-OFFICE 一样工作(不请求 .NET
框架)?
回答提出的问题:
How does Microsoft Office doesn't require .NET 3.5 or 4.5, while VSTO
addins require them?
Microsoft Office 基于 COM 并使用 C 语言(C、C+、C++,但不是 C#)编写,因此不需要 .NET Framework。 Office 早于 .NET 十多年!
如果您使用 Visual Studio .NET 开发插件,则需要在计算机上安装为 .NET 项目选择的 .NET Framework 版本。例如,VSTO 就是这种情况。
Classic VB6 曾经是创建 Office 加载项的常用工具。它不需要 .NET,因为它是一种 COM 编程语言——这就是为什么它没有得到维护或更新,因此它的程序可以 运行 在 Windows(64 位)的更新版本上.所以它被废弃了。
任何可以利用构建 Office COM 加载项基础的 IDTExtesibility2 接口 的编程语言都可以(至少在理论上)用于编写 COM 加载项-在办公室。有必要研究和了解该界面,以及所选编程语言与 Windows COM 环境的关系,以便对 Office 加载项进行编程。
您正在考虑的 Microsoft 加载项类型无法使用 VBA 开发(正如评论中所建议的那样)- VBA 必须 运行 在主机中应用程序并包含在属于主机应用程序的文档中。 VBA 能够 自动化 其他 Office 应用程序,但这不符合加载项的条件。在大多数 Office 应用程序中,VBA 可以用作该应用程序的 "add-in" 通过以某种方式加载代码容器文档,使代码可用于在 Office 应用程序中打开的所有文件。
为 Microsoft Office 构建任何插件(在 Visual Studio 中)时,我们必须选择目标 .NET FRAMEWORK
。
实际上,在我安装了 MS OFFICE 2010
的几台 PC 上,它既不需要 .NET 3.5
也不需要 4.5
。但是,在同一台 PC 上尝试安装我的加载项时,它请求 .NET
.
是否无法使插件像 MS-OFFICE 一样工作(不请求 .NET
框架)?
回答提出的问题:
How does Microsoft Office doesn't require .NET 3.5 or 4.5, while VSTO addins require them?
Microsoft Office 基于 COM 并使用 C 语言(C、C+、C++,但不是 C#)编写,因此不需要 .NET Framework。 Office 早于 .NET 十多年!
如果您使用 Visual Studio .NET 开发插件,则需要在计算机上安装为 .NET 项目选择的 .NET Framework 版本。例如,VSTO 就是这种情况。
Classic VB6 曾经是创建 Office 加载项的常用工具。它不需要 .NET,因为它是一种 COM 编程语言——这就是为什么它没有得到维护或更新,因此它的程序可以 运行 在 Windows(64 位)的更新版本上.所以它被废弃了。
任何可以利用构建 Office COM 加载项基础的 IDTExtesibility2 接口 的编程语言都可以(至少在理论上)用于编写 COM 加载项-在办公室。有必要研究和了解该界面,以及所选编程语言与 Windows COM 环境的关系,以便对 Office 加载项进行编程。
您正在考虑的 Microsoft 加载项类型无法使用 VBA 开发(正如评论中所建议的那样)- VBA 必须 运行 在主机中应用程序并包含在属于主机应用程序的文档中。 VBA 能够 自动化 其他 Office 应用程序,但这不符合加载项的条件。在大多数 Office 应用程序中,VBA 可以用作该应用程序的 "add-in" 通过以某种方式加载代码容器文档,使代码可用于在 Office 应用程序中打开的所有文件。