我在C#(.NET 4.0)中创建了一个托管ActiveX控件,可由Office VBA访问(当前从Dynamics中的VBA代码调用)。但是,在寻找一种方法将其部署到我们公司的大众(并保持更新)时,我找不到一种有效的方法。
起初,我认为我可以通过ClickOnce以某种方式做到这一点,但在阅读了一些文章之后,我认为这不会起作用。
有什么建议吗? PowerShell也许吧?
当我们添加新功能时,我需要经常更新此控件。
非常欢迎任何建议。
感谢您的时间,
罗布
答案 0 :(得分:2)
不要排除ClickOnce。 ClickOnce的问题在于它安装应用程序 per-user 而不是每台机器/系统范围。由于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 reg更新的方法。
答案 1 :(得分:-1)