2012-09-26 150 views
2

我創建了一個.Net 4.0(x86)Office 2007(32位)Outlook插件。製作插件是一件容易的事情,使安裝程序變得更乏味。.Net 4.0 Office 2007插件MSI安裝

經過對VSTO的一些研究,以及如何爲它創建MSI,我和其他幾位開發人員進行了驗證,其中包括"Deploying a Visual Studio 2010 Tools for Office Solution Using Windows Installer",手動對照"Deploying a VSTO 2010 solution for Office 2007/2010 using Windows Installer"進行了檢查。我也做了一些研究,如測試"How do you assign the Assembly Location of an Excel VSTO Installation?"等,我不記得一切。

所有必需的依賴關係都已處理完畢,手動雙擊.vsto文件可成功安裝它,並且用戶可以使用它。 (看着進程監視器,這似乎使用SideBySide安裝,找不到任何使用與Microsoft指令相同的註冊表項。)

但是,MSI安裝仍然不起作用。它安裝正常並按預期註冊註冊表項,但插件在Outlook啓動時未加載。

根據文檔正確編寫了VSTO registry keys。該插件似乎在Outlook(信任中心)中註冊,我可以在那裏手動啓用它。但是,在手動激活Outlook後重新啓動Outlook時,LoadBehavior註冊表項從3(已加載,啓動時加載)更改爲0(未加載,請勿自動加載)。插件沒有任何註冊(它應該註冊一個工具欄+按鈕)。

我如何獲得MSI的工作?

爲什麼導遊不工作? (.Net 4.0中的變化?與Office 2007不兼容?只是普通的ol錯誤?)

如何調試實際出錯的內容?我在事件日誌中找不到任何有用的東西。

(PS手動!安裝是不是一種選擇。文件必須自動部署到大集計算機)。

+0

** Manifest **鍵的價值是多少?請分享註冊表的確切路徑,您將添加此密鑰。您應該將調試程序附加到'outlook.exe'進程以查看拋出的異常。如果插件崩潰,LoadBehavior將從** 3 **(* Loaded *)更改爲** 0 **(* Unloaded *)。 – SliverNinja

+0

Manifest鍵包含:'C:\ Program Files(x86)\ Company \ Company.OutlookPlugin \ Company.OutlookPlugin.Outlook2007Plugin.vsto | vstolocal'。將Visual Studio附加到Outlook不會顯示任何託管代碼例外。 –

+0

Manifest鍵看起來不錯 - 你在哪裏把這個清單鍵放在註冊表(*註冊表配置單元*)? – SliverNinja

回答

0

我結束了創建一個NSIS安裝在那裏我執行vstoinstaller無聲標誌安裝VSTO。我還使用了一個有效的證書在vstoinstall之前的安裝階段使用有效的證書對代碼進行簽名並(以編程方式)將證書添加到可信存儲以繞過-300錯誤代碼。

+0

只是一個旁註,我們後來最終使用http://www.add-in-express.com/處理所有的.. VSTO廢話。工作很好。 –