2009-05-27 36 views
3

ビジュアルスタジオC#プロジェクトでは、COMライブラリへの参照を追加することができます。 Visual Studioは、プロジェクトをビルドするときにinteropアセンブリを生成するのにtlbimp.exeを使用します。参照は、.csprojファイルに次のようになります。ビジュアルスタジオでの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。ビジュアルスタジオでこれらの警告を抑制するにはどうすればよいですか?私は

<WrapperTool>tlbimp /silent</WrapperTool> 

にラッパーツールを変更しようとしましたが、それは、Visual Studioは、エラーが が防止のロードから 「TDAPIOLELib」を参照していることに遭遇してい

と文句を言うようになります。ラップツール 'tlbimp/silent'は 有効なラッパーツールではありません。

答えて

2

私は明示的にTlbimp.exeをを呼び出すためにBeforeBuildターゲットを使用して終了:

<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

私はこれを考えましたが、ビルド中にinteropアセンブリを生成することをお勧めします。 COMライブラリをアップグレードする方が簡単です。 interopアセンブリも再作成する必要があることを文書化する必要はありません。 –

関連する問題