我在集成服务器上工作,现在我想构建一个引用 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 的情况下继续构建?
谢谢!莱因哈德。