2010-02-17 50 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嗎?