2010-02-17 95 views
7

我是想解决根本问题是应用自定义键绑定内部VSTO的Word插件的方法部署C#代码和VBA脚本(develiped在C#):如何在一个VSTO的Word插件

Globals.ThisAddIn.Application.KeyBindings.Add( 
    Word.WdKeyCategory.wdKeyCategoryCommand, 
    "MyMethodName", 
    myKey, 
    ref _missing, 
    ref _missing); 

好,问题是这段代码总是抛出一个异常,因为(Microsoft MSDN):“没有办法(在对象模型或Word应用程序中)绑定除VBA宏之外的任何内容”。

其他开发人员试图做的是实现一种VBA方法的解决方法,在加载插件时将键绑定分配给VBA回调,并依次从这些回调中调用C#插件。 (详情请见call VBA from C#

这个想法有一个生活的机会:.NET AddIn和启用VBA的Word模板。但在我的项目中,我需要将这个插件以单一的一次性包传递给最终用户机器(在安全设置不成问题的公司网络内部)。

所以问题是:如何在一个部署包中混合使用C#加载项(Ribbon)和VBA脚本?

有没有人有这样的经验分享?

+0

这是VSTO4(.NET 4)的解决方案:“演练:在单个ClickOnce安装程序中为.NET Framework 4部署多个Office解决方案”(http://msdn.microsoft.com/zh-cn/library /dd465290(VS.100).aspx)。 VSTO3怎么样? – Ghen 2010-02-18 21:28:38

回答

1

然后我们开始吧!

Walkthrough: Deploying Multiple Office Solutions in a Single ClickOnce Installer for the .NET Framework 3.5.

很多手的工作。但想法是更新ClickOnce包与其他依赖项(编辑清单XML)。标准的ClickOnce安装程序将为您完成剩下的工作。

+0

好找Ghen。你可以继续并接受你自己的答案(复选标记thingy),以便该线程显示为“已回答”。 – 2010-02-20 20:37:30

+3

你的链接已经去世。 – karlipoppins 2010-07-02 08:52:24

+0

有没有人可以更新链接? – 2011-07-18 13:29:42

0

当你可以直接使用windows subclassing直接绑定到键盘快捷方式时,hmmm似乎是一种解决方法。

0

我问ClickOnce产品团队您的问题。他表示,您可以将这些脚本包含在VSTO部署中,并且如果您的目标是.NET 4.0,则可以使用VSTO加载项进行部署后步骤。他说你也可以通过VSTO中的VBA Interop功能来实现这一点。你碰巧瞄准.NET 4.0吗?