如何构建依赖构建服务器上的第三方COM库的项目?

时间:2015-12-18 02:25:28

标签: com msbuild build-server

我正在开发一个项目,它使用第三方COM库作为参考,我想在Visual Studio Team Services构建客户端上构建此项目。我的第一个想法是创建一个MSBuild任务,检查是否在本地计算机上安装了COM库,如果不是,请继续安装它,但这似乎是一种非常混乱的方法。我已经四处寻找,但似乎所有的答案都可以追溯到几年前,我似乎无法在VS 2013项目中找到一些我找到的工作。别人怎么解决这个问题?有更清洁的方式吗?

作为参考,我也尝试了this solution,它看起来很干净,无济于事。

1 个答案:

答案 0 :(得分:2)

我会去其中一条路线:

  • 使用tlbimp生成interop dll,将其添加到项目中并直接引用它:
    • 在VS命令提示符下,执行tlbimp.exe <your_dll>以生成互操作dll。您可以使用/out选项指定名称。
    • 将此dll与您的代码放在一起
    • 转到Add reference > Browse并点击Browse...添加dll
    • 来引用它
  • 从COM dll生成tlb,将其添加到项目中并引用tlb:
    • 生成tlb(例如,使用OLE/COM Object viewer)或extract it from the dll resources
    • 将此tlb与您的代码放在一起
    • 转到Add reference > COM并点击Browse...以将tlb引用添加到项目
    • 来引用它
    • 正如@HansPassant在评论中指出的那样,此解决方案仍依赖于注册表,但您可以使用regtlbregtlib或类似工具注册它作为预建步骤,这应该比安装服务器(虽然它只是一个dll,你可以使用regsvr32来注册它而不是完全安装)。但是,这仍然比使用interop dll的方法更复杂