2009-05-27 8 views
3

In einem Visual Studio C# -Projekt ist es möglich, Verweise auf COM-Bibliotheken hinzuzufügen. Visual Studio verwendet dann tlbimp.exe, um die Interop-Assembly beim Erstellen des Projekts zu generieren. Der Referenz sieht wie folgt in der Datei CSPROJ:Tlbimp-Warnungen in Visual Studio unterdrücken

<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> 

jedoch die 3rdparty Typ-Bibliothek, die ich hier den Import verursacht tlbimp einige Warnungen auszusenden. Wie kann ich diese Warnungen im Visual Studio unterdrücken? Ich habe versucht, das Wrapper-Tool

<WrapperTool>tlbimp /silent</WrapperTool> 

zu ändern, aber das verursacht Visual Studio mit

zu beklagen ist ein Fehler wurde festgestellt, dass verhindert ‚TDAPIOLELib‘ von Laden verweisen. Das Wrapper-Tool 'tlbimp/silent' ist kein gültiges Wrapper-Tool.

Antwort

2

Ich landete das Before Ziel unter Verwendung ausdrücklich tlbimp.exe aufzuzurufen:

<Target Name="BeforeBuild"> 
    <Exec Command="tlbimp /silent ..\3rdparty\comlibrary.dll /out:..\bin\interop.comlibrary.dll" /> 
    </Target> 

Dies erfordert nicht Referenzierung der interop.comlibrary.dll binär, was zu einem kleinen gelben Warnzeichen auf der Referenz in Visual Studio beim Öffnen des Projekts vor dem ersten Build.

4

Wenn die COM-Bibliothek nicht ständig ihre COM-Schnittstellen ändert, können Sie den Typelib-Importer einmal ausführen und dann von nun an auf die Interop-Assembly in Ihrem Projekt verweisen. Wenn Sie reg COM haben, brauchen Sie nur die COM-Bibliothek in Ihren Build-Ausgabeordner zu kopieren.

+0

Ich dachte darüber nach, aber ich bevorzuge, die Interop-Assembly während des Builds zu generieren. Das Aktualisieren der COM-Bibliothek ist auf diese Weise einfacher; Es muss nicht dokumentiert werden, dass die Interop-Assembly ebenfalls neu erstellt werden muss. –

Verwandte Themen