2009-05-27 82 views
3

在Visual Studio C#項目中,可以添加對COM庫的引用。然後,Visual Studio將在構建項目時使用tlbimp.exe生成互操作程序集。參考看起來像這樣在.csproj的文件:在Visual Studio中抑制tlbimp警告

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

回答

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在第一次構建之前打開項目。

4

除非COM庫經常更改它的COM接口,否則您可以運行一次typelib導入器,然後從項目中引用項目中的interop程序集。如果你有免費的COM,所有需要的就是將COM庫複製到你的構建輸出文件夾中。

+0

我考慮過這個,但我更喜歡在構建過程中生成互操作程序集。升級COM庫就更簡單了;不需要記錄互操作程序集也需要重新創建。 – 2009-08-22 12:14:50