2015-12-09 41 views
0

我在集成服务器上工作,现在我想构建一个指向COM库的C#.NET 4.5解决方案。 COM对象未安装在CI机器上。C#/ COM解决方案的异地构建可能吗?

我手边有一个.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的情况下继续构建?

谢谢!莱因哈德。

+0

您是否在寻找免注册的COM? – clD

回答

0

我必须先删除对已注册COM接口的引用。然后,.dll工作正常。 感谢您的回答!