2014-04-15 50 views
0

我已經編寫了一個程序集,該程序集使用regasm註冊並在我的開發機器上正常工作。我想知道在用戶的計算機上部署這種庫的推薦方式是什麼。我的用戶將使用Excel VBA中的COM庫。從用戶的計算機上的.NET程序集中部署COM類的最佳方法

我知道我可以編寫一個調用regasm並將其交付給用戶的簡單腳本,但我不確定這是否是最佳做法。例如,在提供了幾個更新後,我的用戶最終可能會註冊多個版本的庫,所以我想爲他們提供一種在不再需要時卸載舊版本的方法。用戶將自己編寫VBA腳本,以便他們知道他們使用的COM庫的版本,因此他們應該能夠知道哪些版本可以被卸載。

最佳做法是什麼?

+0

如果您對於您期望使用此服務器的客戶端程序的種類沒有提出任何意見,則無法做出有意義的回答。 COM有一個強大的DLL Hell問題,你會*通過任意刪除或替換舊版本而陷入麻煩。你打破客戶端程序的機率非常高。 –

+0

@HansPassant - 編輯。 –

+0

所以你不知道客戶端程序員使用的是什麼版本。如果不*自動卸載舊版本,則必須留給他們。確保新版本可以和舊版本和平共存。這意味着您必須使用新的[AssemblyVersion]部署到GAC。並遵循COM規則,接口中的更改需要新的GUID,因此新版本的註冊不會覆蓋舊版本。 –

回答

1

我使用WiX來安裝應用程序,它支持使用名爲Heat的套件中的工具來創建這些註冊條目。它有一點點的學習曲線,但我發現它是一個很棒的安裝套件。它是免費的,它被廣泛使用。

如果你正在尋找一個更簡單的解決方案,你可以創建一個批處理文件,就像你說的手動註冊/取消註冊DLL並安裝/卸載文件。

相關問題