In a visual studio C# project, it is possible to add references to COM libraries. Visual Studio will then use tlbimp.exe to generate the interop assembly when building the project. The reference looks like this in the .csproj file:
<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>
However, the 3rdparty type library which I am importing here causes tlbimp to emit some warnings. How do I suppress these warnings in visual studio? I tried to change the wrapper tool to
<WrapperTool>tlbimp /silent</WrapperTool>
but that causes visual studio to complain with
An error has been encountered that prevents reference 'TDAPIOLELib' from loading. The wrapper tool 'tlbimp /silent' is not a valid wrapper tool.
I ended up using the BeforeBuild target to explicitly invoke tlbimp.exe:
<Target Name="BeforeBuild">
<Exec Command="tlbimp /silent ..\3rdparty\comlibrary.dll /out:..\bin\interop.comlibrary.dll" />
</Target>
This does require referencing the interop.comlibrary.dll binary, resulting in a little yellow warning sign on the reference in visual studio when opening the project before the first build.