在visual studio C#项目中,可以添加对COM库的引用。然后,Visual Studio将在构建项目时使用tlbimp.exe生成互操作程序集。引用在.csproj文件中如下所示:
<ItemGroup>
<COMReference Include="TDAPIOLELib">
<Guid>{F645BD06-E1B4-4E6A-82FB-E97D027FD456}</Guid>
<VersionMajor>1</VersionMajor>
<VersionMinor>0</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>tlbimp</WrapperTool>
<Isolated>False</Isolated>
</COMReference>
</ItemGroup>
但是,我在这里导入的第三方类型库导致tlbimp发出一些警告。如何在visual studio中抑制这些警告?我试图将包装工具更改为
<WrapperTool>tlbimp /silent</WrapperTool>
但这导致视觉工作室抱怨
出错了 遇到阻止引用 加载'TDAPIOLELib'。该 包装工具'tlbimp / silent'不是 有效的包装工具。
答案 0 :(得分:4)
除非COM库不断更改它的COM接口,否则您可以运行一次类型库导入器,然后从那时开始参考项目中的互操作程序集。如果您有免费的COM,那么所需的只是将COM库复制到您的构建输出文件夹中。
答案 1 :(得分:2)
我最终使用BeforeBuild目标显式调用tlbimp.exe:
<Target Name="BeforeBuild">
<Exec Command="tlbimp /silent ..\3rdparty\comlibrary.dll /out:..\bin\interop.comlibrary.dll" />
</Target>
这需要引用interop.comlibrary.dll二进制文件,在第一次构建之前打开项目时,Visual Studio中的引用会产生一个黄色警告标记。