我有一个用C#编写的Visual Studio(2015)项目,它依赖于用C ++编写的外部dll(比如a.dll)。这又依赖于其他库(比如b.dll,c.dll),也是用C ++编写的。这些依赖于一些增强库。我无法控制任何库,但必须使用它们来完成项目。
将库a.dll添加到visual studio项目中是可以的。我可以添加它作为参考,这是有效的。但是,它不会运行,因为其他库不存在。
当我尝试将b.dll和c.dll添加到我的项目时,我收到错误:
无法添加对“a.dll”的引用。请确保该文件是可访问的,并且它是有效的程序集或COM组件。
使用此答案(https://stackoverflow.com/a/12639732/5503148)我尝试运行TlbImp,并收到此错误:
TlbImp:错误TI1002:输入文件“b.dll”不是有效的类型库。
如果我手动将库复制到输出文件夹,或者通过将它们添加到项目中而不是作为参考来自动复制它们,那么它就会全部运行。
但是,在最终结果中,项目需要依赖于库。这样他们就可以加载到另一个第三方产品中。
有没有办法手动执行此操作 - 即告诉Visual Studio库a.dll是否依赖于其他库?