2011-08-18 62 views
5

我試圖使用ClickOnce部署Outlook加載項。 在設置更新選項時,我注意到Outlook項目中添加的可用選項少於Win Forms項目。例如,我無法指定最低要求的版本。這是爲什麼?另外,我想:Outlook加載項ClickOnce更新設置

  1. 啓用手動更新
  2. 詢問用戶是否他甚至想更新(如果不需要的話)。

1)我嘗試使用System.Deployment.Application和CheckForDetailedUpdate()函數,但即使更新成功,則在安裝它的問題:如果我重新啓動我的插件從Outlook中消失,如果我不老版在Outlook中卡住(表現奇怪),儘管通過UNC路徑進一步更新表明更新已成功完成。

2)定期發佈時沒有添加Mage或MageUI本身的特殊選項,但加載項似乎在不詢問用戶的情況下進行更新。谷歌搜索有點反應,人們試圖做相反的事情,所以我有點困惑,爲什麼它不提示默認更新。我試着編輯用MageUI從Visual Studio生成的清單,但它生成應用程序清單的無效XML(?! - 它錯過了「dependentAssembly」節點中的「assemblyIdentity」節點),並且當我添加從原始清單生成的缺少節點VS(更新並在之後進行簽名),安裝會抱怨組件哈希無效。

如何根據上述要求部署Outlook加載項?

回答

6

VSTO應用程序(Office加載項)僅支持ClickOnce的某些位。您可以嘗試添加代碼並執行程序更新,但微軟的ClickOnce領導表示它並非真正有意使用,其中的一部分可能無法使用。 (不,沒有詳細說明哪些部分 - 你必須做一些試驗&錯誤)。

另請注意,vsto部署的工作和運行方式如下:Outlook檢出vsto應用程序,並將dll(s)複製到陰影位置並使用Outlook加載。當您更新vsto應用程序時,它會在點擊一次緩存中進行更新,但不會在Outlook中進行更新。當您關閉Outlook並重新打開它時,它會找到新版本,將其複製到影子位置並加載它。您無法重新啓動vsto位本身,並讓它執行任何操作。用戶必須重新啓動Outlook。

這是啓動Office應用程序時執行更新的原因之一。它會查找新版本,必要時進行更新,然後將其加載到Outlook中並使用它。

話雖如此,完成你想要的東西的另一種方法是編寫一個Windows窗體應用程序來更新你的加載項。基本上部署一個winforms應用程序,除了通過clickonce調用vsto應用程序(process.start是你的朋友)之外,第一次不顯示任何內容。然後,您可以讓Outlook加載項調用winforms應用程序,查看是否有更新,如果有更新,它可能會提示更新贏取窗體應用程序,然後卸載並重新安裝Office加載項或更新它。

+1

似乎色帶部分有點問題。而且幾乎不是唯一的。謝謝你的回答,至少我知道我不應該再浪費時間去做那些不該做的事情。 – Damir

+0

@RobinDotNet這個答案今天仍然有效,大約5年?我開發了一個Excel插件(基於VSTO的應用程序,通過FTP發佈並通過HTTP安裝),Excel啓動時的自動更新過程正常。但是,我一直在尋找一種方法,允許用戶檢查更新並通過在添加界面中單擊按鈕來應用更新。仍然無法實現這一目標?謝謝。 –