0

私は統合サーバーで作業しており、COM ライブラリを参照する C#.NET 4.5 ソリューションを構築したいと考えています。COM オブジェクトが CI マシンにインストールされていません。

手元に .tlb ファイルがあります。tlbimp.exe を使用して .dll を既に作成し、参照を .csproj ファイルに含めました。

  <ItemGroup>
    <COMReference Include="myComName">
      <Guid>{theGUID}</Guid>
      <VersionMajor>1</VersionMajor>
      <VersionMinor>0</VersionMinor>
      <Lcid>0</Lcid>
      <WrapperTool>tlbimp</WrapperTool>
      <Isolated>False</Isolated>
      <EmbedInteropTypes>True</EmbedInteropTypes>
    </COMReference>
  </ItemGroup>

ただし、ビルドは次の警告を発生させます

   warning MSB3284: Cannot get the file path for type library "<theGUID>" version 1.0. Library not registered. (Exception from HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED))

確かに、それは登録されていません。生成された .dll ファイルから必要な型情報を取得するには、コンパイラとリンカーが必要です。

COM .dll を登録せずにビルドを続行する方法はありますか?

ありがとう!ラインハルト。

4

1 に答える 1

0

まず、登録済みの COM インターフェイスへの参照を削除する必要がありました。その後、.dll は正常に機能しました。答えてくれてありがとう!

于 2015-12-21T10:09:48.023 に答える