在 Visual Studio 中抑制 tlbimp 警告
Posted
技术标签:
【中文标题】在 Visual Studio 中抑制 tlbimp 警告【英文标题】:Suppress tlbimp warnings in visual studio 【发布时间】:2010-10-29 07:09:06 【问题描述】:在 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>
但是,我在此处导入的 3rdparty 类型库会导致 tlbimp 发出一些警告。如何在 Visual Studio 中抑制这些警告?我试图将包装工具更改为
<WrapperTool>tlbimp /silent</WrapperTool>
但这会导致视觉工作室抱怨
出现错误 遇到阻止参考的 'TDAPIOLELib' 从加载。这 包装工具 'tlbimp /silent' 不是 有效的包装工具。
【问题讨论】:
【参考方案1】:除非 COM 库不断更改它的 COM 接口,否则您可以运行 typelib 导入器一次,然后从那时起在您的项目中引用互操作程序集。如果您有 reg free COM,只需将 COM 库复制到您的构建输出文件夹中。
【讨论】:
我考虑过这一点,但我更喜欢在构建期间生成互操作程序集。这样升级 COM 库就更简单了;无需记录互操作程序集也需要重新创建。【参考方案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 中的引用上会出现一个黄色的小警告标志。
【讨论】:
以上是关于在 Visual Studio 中抑制 tlbimp 警告的主要内容,如果未能解决你的问题,请参考以下文章
在 Visual Studio 2015 中为自定义代码分析器抑制警告
Visual Studio 2015 不会抑制错误 C4996
在 Visual Studio 2017 for MAC 中抑制命名规则冲突 IDE1006
如何在 Visual Studio 2008 中抑制特定的 CSS 2.0 验证错误?