0

我在集成服务器上工作,现在我想构建一个引用 COM 库的 C#.NET 4.5 解决方案。COM 对象未安装在 CI 机器上。

我手头有一个 .tlb 文件。我已经使用 tlbimp.exe 创建了 .dll 并将引用包含在 .csproj 文件中:

  <ItemGroup>
    <COMReference Include="myComName">
      <Guid>{theGUID}</Guid>
      <VersionMajor>1</VersionMajor>
      <VersionMinor>0</VersionMinor>
      <Lcid>0</Lcid>
      <WrapperTool>tlbimp</WrapperTool>
      <Isolated>False</Isolated>
      <EmbedInteropTypes>True</EmbedInteropTypes>
    </COMReference>
  </ItemGroup>

但是,构建引发以下警告

   warning MSB3284: Cannot get the file path for type library "<theGUID>" version 1.0. Library not registered. (Exception from HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED))

没错,它没有注册。我宁愿让编译器和链接器从生成的 .dll 文件中获取所需的类型信息。

有没有办法在不注册 COM .dll 的情况下继续构建?

谢谢!莱因哈德。

4

1 回答 1

0

我必须先删除对已注册 COM 接口的引用。然后,.dll 工作正常。感谢您的回答!

于 2015-12-21T10:09:48.023 回答