好的,我有两个问题要问,我在这里陷入困境,已经呆了一个星期了。
重要的-没有应用程序会构建或运行它。它将是一个单一的客户端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?
很抱歉提出这个冗长的问题,但是非常感谢你的阅读和帮助我。我到处找这个,现在精神上已经精疲力竭了。
发布于 2012-11-29 20:54:48
1) ScannerController.dll
使用regasm ScannerController.dll注册COM
2)第三方ActiveX dll
假设它已经注册:不需要采取任何行动。(否则向regsvr32注册)
3)第三方管理的图书馆(无com类型/lib性别定位)
使用以下2项选项之一可以保证您的ScannerController库可以访问这些托管库:
https://stackoverflow.com/questions/13633222
复制相似问题