2011-10-17 48 views
0

我在C#(.NET 4.0)中創建了一個由Office VBA訪問的託管ActiveX控件(目前正在從Dynamics的VBA代碼中調用)。但是,在尋找一種方法將其部署到我們公司的羣衆中(並且保持更新)時,我找不到一種有效的方法。大規模部署用C#.NET 4.0編寫的託管ActiveX控件

起初,我認爲我可以通過ClickOnce以某種方式做到這一點,但在閱讀了一些文章後,我認爲這不會起作用。

有什麼建議嗎?也許PowerShell?

當我們添加新功能時,我需要更頻繁地更新這個控件。

任何意見是非常歡迎。

感謝您的時間,

羅布

回答

-1

您可以使用regasm.exe實用程序:

regasm.exe /codebase foo.dll 

其中foo.dll是包含要公開ActiveX控件的託管程序集。

2

不排除ClickOnce。 ClickOnce的問題在於它安裝應用程序每個用戶而不是每臺計算機/系統範圍。因爲COM/ActiveX註冊通常是機器/系統範圍的,即註冊表項在HKLM下,所以ClickOnce不支持它(由於需要修改註冊表的HKLM部分所需的權限)。

但是,由於Windows 2000可以在註冊表的用戶部分註冊COM對象:HKEY_CURRENT_USER\Software\Classes映射到HKEY_LOCAL_MACHINE\SOFTWARE\Classes這與HKEY_CLASSES_ROOT相同。

因此,使用類似RegSvrEx的東西,您應該能夠確定您需要在HKCU下創建的註冊表項。完成此操作後,請在ClickOnce安裝/更新發生時找到觸發此HKCU註冊表更新的方法。

+0

你好鄧肯,謝謝你的回覆。我通讀了那篇文章,但不認爲它直接適用於我所追求的。託管應用程序將是Dynamics(或者,對於類似的插圖,Excel)。在Excel中,你進入代碼窗口,選擇工具 - >參考,並添加我的ActiveX(C#4.0)控件(它是用regasm註冊的)。我希望避免在75臺電腦上運行regasm。而且,不知道如何更新我的ActiveX控件一旦部署到他們所有。我是否錯過了那篇文章中的內容,或者有沒有其他方向可以指向我?謝謝! – Rob

+0

其實我會更新答案。我正在考慮在用戶註冊表(HKCU)下注冊COM對象,而不是機器(HKLM) –

+0

嗨Duncan,感謝您的更新。所以我想知道是否應該創建一個使用RegSvrEx的PowerShell/WMI解決方案。有趣的想法... – Rob

相關問題