如何从单独的 .NET 应用程序 运行 VSTO Word 模板中的方法?
How to run a method in a VSTO Word Template from a separate .NET application?
我正在从事一个项目,该项目涉及使用 VSTO 将 Word 模板 中的宏迁移到 VB.NET。我们已经能够创建 Word 模板并将代码迁移到 VB.NET 就好了,但是我们需要从单独的 .NET 应用程序中执行特定的 VSTO 方法。
以前,我们可以通过以下方式在 VBA 中实现此目的:
Word.Application.Run(MacroName:="MyDocument.MyModule.MyMethod")
有几篇文章解释了如何使用应用程序和文档级自定义来实现这一点,但我们还没有找到任何关于如何使用 VSTO 文档级自定义来实现这一点的信息Word 模板.
我们已经尝试了多种不同的方法,包括:
- 公开 class 和此 How to expose a C# class to a VBA module in a document-level add-in?
中概述的方法
- 引入一个 VBA 宏(我们可以从 .NET 应用程序访问它),它可以将 VSTO 方法作为 outlined in this MSDN article
然而,这些似乎都不适用于文档级模板。除此之外,我们还尝试在功能区中添加一个按钮来触发所需的方法,并尝试使用 Word.Application.CommandBars.FindControl()
从我们的 .NET 应用程序访问它
更多信息:VSTO Word 模板是使用 VS2013 创建的,单独的 .NET 应用程序是在 VS2010 上开发的。两个应用程序 运行 .NET Framework 4.
您可以使用标准的 .Net 机制,例如 WCF (.Net Remoting) 等。将您的文档级加载项视为一个单独的应用程序。
如果是应用程序级别的加载项,您可以直接调用它们。有关详细信息,请参阅 Calling Code in Application-Level Add-ins from Other Office Solutions。
我正在从事一个项目,该项目涉及使用 VSTO 将 Word 模板 中的宏迁移到 VB.NET。我们已经能够创建 Word 模板并将代码迁移到 VB.NET 就好了,但是我们需要从单独的 .NET 应用程序中执行特定的 VSTO 方法。
以前,我们可以通过以下方式在 VBA 中实现此目的:
Word.Application.Run(MacroName:="MyDocument.MyModule.MyMethod")
有几篇文章解释了如何使用应用程序和文档级自定义来实现这一点,但我们还没有找到任何关于如何使用 VSTO 文档级自定义来实现这一点的信息Word 模板.
我们已经尝试了多种不同的方法,包括:
- 公开 class 和此 How to expose a C# class to a VBA module in a document-level add-in? 中概述的方法
- 引入一个 VBA 宏(我们可以从 .NET 应用程序访问它),它可以将 VSTO 方法作为 outlined in this MSDN article
然而,这些似乎都不适用于文档级模板。除此之外,我们还尝试在功能区中添加一个按钮来触发所需的方法,并尝试使用 Word.Application.CommandBars.FindControl()
更多信息:VSTO Word 模板是使用 VS2013 创建的,单独的 .NET 应用程序是在 VS2010 上开发的。两个应用程序 运行 .NET Framework 4.
您可以使用标准的 .Net 机制,例如 WCF (.Net Remoting) 等。将您的文档级加载项视为一个单独的应用程序。
如果是应用程序级别的加载项,您可以直接调用它们。有关详细信息,请参阅 Calling Code in Application-Level Add-ins from Other Office Solutions。