首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >注册引用多个dll的dll。

注册引用多个dll的dll。
EN

Stack Overflow用户
提问于 2012-11-29 19:29:17
回答 1查看 1.6K关注 0票数 1

好的,我有两个问题要问,我在这里陷入困境,已经呆了一个星期了。

重要的-没有应用程序会构建或运行它。它将是一个单一的客户端dll (引用其他几个dll的),将放置在特定的文件夹,我将需要注册这个dll使用regasm或其他什么。

OverView:

所以我写了一个c# COM ScannerController.dll。ScannerController引用五个第三方dll,这些dll将在整个c:\Program \.的文件夹中安装和注册。(位置将根据其所在软件的版本而改变,但dll将是相同的。)

这个dll (integration.ActiveX (它是一个程序集))有一个名为InstalledPath的方法。InstalledPath返回执行程序集的实际位置。当我完成dll时,我通过IExplorer运行它,它返回正确的“../程序特性/.”。

然后,为了在另一台计算机上设置它,我注销了它,然后运行了一些regasms,并在"Scanner/bin/debug/integration.ActiveX“( oleview说它找不到它的依赖项)注册了dll,所以我取消了它的注册,在vs2012中构建了它,现在当我从IExplorer运行它时,InstalledPath是”./bin/InstalledPath/“。我创建了一个新的项目,构建了一个自动注册它的项目,并在iexplorer上运行它,InstalledPath是“..Scanner/bin/debug/”。我已经在cmd中注销了一百万次,不管我做了什么,它现在总是指向已注册ScannerController的调试文件夹。

问题1:

在世界上,我如何注册我的COM ScannerController.dll,使用类似regasm之类的东西,并将它指向ScannerController引用的五个第三方dll?

问题2:

我尝试将它修复到计算机上的本地路径中不存在Integration.dll的地方(因为我正在构建它),所以我将本地副本设置为false。当我构建它时,在oleview中查看它,它说它的依赖项无法加载或找到。如何设置该项目,以便通过复制local = false,引用可以找到其他第三方dll?

很抱歉提出这个冗长的问题,但是非常感谢你的阅读和帮助我。我到处找这个,现在精神上已经精疲力竭了。

EN

回答 1

Stack Overflow用户

发布于 2012-11-29 20:54:48

1) ScannerController.dll

使用regasm ScannerController.dll注册COM

2)第三方ActiveX dll

假设它已经注册:不需要采取任何行动。(否则向regsvr32注册)

3)第三方管理的图书馆(无com类型/lib性别定位)

使用以下2项选项之一可以保证您的ScannerController库可以访问这些托管库:

  • 将它们复制到您的ScannerController.dll所在的文件夹,或者可能(我不是100%确定,您必须测试它)到ScannerController.dll主机-- exe /调用ScannerController.dll的进程--所在的文件夹中。
  • 全局程序集缓存 (托管库的注册表挂件)中注册这些库,使它们对其他应用程序全局可用。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13633222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档