好吧,我有2个问题,我在这里泡菜,已经有一个星期了。注册一个引用多个dll的dll
重要 - 没有应用程序将构建或运行它。这将是一个单一的客户端端DLL(引用其他几个DLL),将被放置在特定的文件夹,我将需要注册此DLL使用regasm或其他东西。
概述:
所以我有一个C#COM ScannerController.dll写。 ScannerController引用了五个第三方DLL,它们已经被安装并注册到整个c:\ Program Features \ etc ....文件夹中(这些位置将根据它们所在的软件版本而变化,但dll将是相同。)
这一个DLL(integration.ActiveX(它是一个程序集))有一个名为InstalledPath的方法。 InstalledPath返回执行程序集的实际位置。当我完成dll时,我通过IExplorer运行它,它返回了正确的“../program features/....”。
然后,为了在另一台计算机上设置它,我取消了注册,然后运行了一些regasms并在“Scanner/bin/debug/integration.ActiveX”注册了dll(该oleview说它找不到它的依赖关系)所以我没有注册它,在vs2012中构建它,现在当我从IExplorer运行它时,InstalledPath是“../bin/debug/”。我创建了一个新项目,构建它自动注册它,并从iexplorer运行它,InstalledPath是“..Scanner-fake/bin/debug /”。我已经在cmd注销了一百万次,无论我做什么,它现在总是指向注册的ScannerController的调试文件夹。
问题1:
如何在世界上注册我的COM ScannerController.dll,使用类似regasm,并且还指向五个第三方的DLL ScannerController引用?
问题2:
我试着将它固定到Integration.dll不会在我的电脑上的本地路径存在(因为我构建它),所以我设定的本地副本为false。当我构建它时,在oleview中查看它,它说它的依赖不能被加载或找到。我该如何设置项目,以便copy = local = false,引用可以找到其他第三方dll?
对不起长时间的问题,但非常感谢你的阅读和尝试帮助我。我为此搜寻了高低,现在我只是精神疲惫。
Integration.Activex.dll,ScannerController.dll(建于VS2012)加5的第三方(COM? )dll已经安装并在目标计算机上注册。这是你有什么? –
对不起,Integration.ActiveX.dll是第三方DLL(所有第三方DLL已经在我的机器上注册)之一。第三方DLL中有4个是Type:Assembly,1是Type:ActiveX。 ScannerControll.dll是一个COM对象,它是在我的机器上本地构建的。 – Godrules500