在visual studio中抑制tlbimp警告

时间:2009-05-27 14:29:30

标签: .net visual-studio visual-studio-2008 msbuild tlbimp

在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'不是   有效的包装工具。

2 个答案:

答案 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中的引用会产生一个黄色警告标记。