是否可以在不添加注册表条目的情况下为COM interop注册.NET程序集?
我正在通过点击一次部署.NET VSTO应用程序。作为安装过程的一部分,应用程序的主程序集需要注册COM互操作。我知道这可以通过编写代码来执行“REGASM assembly.dll/tlb”来完成,但问题是将安装我的应用程序的目标工作站没有管理权限,因此在尝试注册时regasm失败类型库。是否可以在不添加注册表条目的情况下为COM interop注册.NET程序集?
我的问题是,我没有管理权限时,如何注册我的.net程序集以实现互操作性?
你可以使用COM组件的免费注册激活。我已经在通过点击一次部署的应用程序中使用了它,它运行良好。这里有一些链接,让你开始:
Registration-Free Activation of .NET-Based Components
Walkthrough: Manually Deploying a ClickOnce Application
How To: ClickOnce deployment for unmanaged app with COM component in managed assembly
不要以为你可以。可能是错误的,但COM的一个重要组成部分实际上只是一种通过注册表查找事物的方法。如果你不能编辑注册表......你有麻烦了。
http://en.wikipedia.org/wiki/Component_Object_Model#Registry
嗯..作为一个方面说明,我是否正确地认为缺乏管理权限意味着无法添加注册表项? – 2011-02-04 22:13:23
我遇到免注册COM来了,而研究一个相关的问题。我最终没有使用它,所以我不能肯定地说,如果将解决您的问题,但它可能是值得一试:
Simplify App Deployment with ClickOnce and Registration-Free COM
Registration-Free Activation of .NET-Based Components: A Walkthrough
无注册COM是此通常的答案。只是不适用于Office应用程序,有太多加载项竞争做同样的事情。在这个过程中打破你的清单。无论如何,您无法部署它,写入到办公室安装目录需要管理员权限。非常与ClickOnce部署不兼容。除了用户承认“是的,继续并且弄乱我的机器”之外别无选择。如果她相信你没有问题。 – 2011-02-04 22:36:14
这看起来像(不幸)我的答案。虽然我不能检查评论! – 2011-02-05 02:52:42