C# 用C.NET 4.0编写的大规模部署托管ActiveX控件

C# 用C.NET 4.0编写的大规模部署托管ActiveX控件,c#,.net-4.0,activex,clickonce,C#,.net 4.0,Activex,Clickonce,我在C.NET 4.0中创建了一个托管ActiveX控件,该控件由Office VBA访问,当前正在从Dynamics中的VBA代码调用该控件。然而,当我在寻找一种方法来将其部署到我们公司的大众中并保持更新时,我找不到一种有效的方法来做到这一点 起初,我以为我可以通过ClickOnce实现这一点,但在阅读了一些文章后,我认为这不管用 有什么建议吗?也许是地狱 当我们添加新功能时,我需要稍微频繁地更新此控件 任何建议都是非常受欢迎的 谢谢你抽出时间 Rob您可以使用该实用程序: 其中foo.dll

我在C.NET 4.0中创建了一个托管ActiveX控件,该控件由Office VBA访问,当前正在从Dynamics中的VBA代码调用该控件。然而,当我在寻找一种方法来将其部署到我们公司的大众中并保持更新时,我找不到一种有效的方法来做到这一点

起初,我以为我可以通过ClickOnce实现这一点,但在阅读了一些文章后,我认为这不管用

有什么建议吗?也许是地狱

当我们添加新功能时,我需要稍微频繁地更新此控件

任何建议都是非常受欢迎的

谢谢你抽出时间

Rob

您可以使用该实用程序:


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

暂时不要排除ClickOnce。ClickOnce的问题在于,它是按用户安装应用程序,而不是按机器/系统范围安装应用程序。由于COM/ActiveX注册通常是计算机/系统范围的,即注册表项在HKLM下,ClickOnce不支持它,因为修改注册表的HKLM部分需要权限

但自Windows 2000以来,可以在注册表的用户部分注册COM对象:HKEY_当前用户\软件\类映射到HKEY_本地\计算机\软件\类,与HKEY_类\根相同


因此,使用类似的工具,您应该能够确定需要在HKCU下创建的注册表项。完成此操作后,请在ClickOnce安装/更新时找到触发此HKCU reg更新的方法。

您好,Duncan,谢谢您的回复。我通读了那篇文章,但不认为它直接适用于我所追求的。托管应用程序将是Dynamics,或者类似的例子是Excel。在Excel中,转到“代码”窗口,选择“工具”->“引用”,然后添加已向regasm注册的我的ActiveX C 4.0控件。我希望避免在75台以上的电脑上运行regasm。而且,我也不知道在ActiveX控件部署到所有控件后如何更新它。我是否遗漏了那篇文章中的某些内容,或者您是否可以为我指出其他方向?谢谢事实上,我会更新答案。我正在考虑在用户注册中心HKCU而不是机器HKLMHi Duncan下注册COM对象,谢谢更新。因此,我想知道是否应该创建一个使用RegSvrEx的PowerShell/WMI解决方案。有趣的想法…实际上想想看,ClickOnce是由一个在你的应用程序的EXE之前启动的存根EXE触发的,我想你没有你的只是一个DLL,我假设。在任何情况下,本地COM注册可能会有所帮助-也许您的交付机制可以是从登录脚本触发的简单内容。
regasm.exe /codebase foo.dll