2010-10-06 49 views
3

我有用C#編寫的COM組件,實現ISmartTagAction將操作添加到郵件收件人和發件人的東西右鍵菜單。ClickOnce,VSTO或簡單的自動更新爲Outlook使用的COM DLL

它只是一個.NET類庫,通過COM interop公開一些類。目前,我使用Visual Studio安裝項目來部署這個項目。該安裝程序只爲COM註冊DLL,並添加一個額外的註冊表鍵以告知Outlook新的智能標記類。

這工作正常,但我最近做了兩個不相關的項目,在一個案例中點擊一次,在另一個案例中作爲VSTO Outlook插件進行部署,對於最終用戶來說這是一個更好的體驗,主要是因爲clickonce的自動更新功能。

我做了一些調查,並且我還沒有找到任何方法通過單擊一次來分發此COM DLL,因爲似乎無法單擊一次註冊DLL。它是否正確?有什麼方法可以使這項工作?

我的另一個想法是創建一個Outlook插件項目,並以某種方式將這些類放在該項目中,並使用VSTO發佈功能將其推出。我不知道如何在飛行中註冊智能標籤。

任何人都可以想到一種方法,將使這項工作?大多數情況下,我正在尋找自動更新功能,以便非技術人員在可用時獲取更新。

回答

2

你是對的 - ClickOnce無法註冊一個DLL。它只能在客戶端和服務器之間同步文件。好消息是它可以同步任何類型的文件,而不僅僅是.Net程序集。因此,您可以通過將程序集添加到ClickOnce安裝來輕鬆地將程序集導入客戶端。

從那裏,任何其他安裝步驟將不得不在你自己的代碼中完成。您可以將文件複製到一個邏輯位置,使用DllRegisterServer進行註冊,然後添加額外的註冊表項。只要用戶具有執行所有這些操作的安全權限,就應該可以工作。

由於您對ClickOnce的自動更新功能感興趣,因此我假設您的COM DLL經常發生更改。如果情況並非如此,並且只是VSTO應用程序的.Net部分頻繁更改,則可以嘗試Visual Studio爲您生成的引導程序。有很多理由我不喜歡這種方法,所以除非你有興趣,否則我會告訴你細節。

相關問題