可以非现场构建 C#/COM 解决方案吗?
off-site build of C# / COM solution possible?
我在集成服务器上工作,现在我想构建一个引用 COM 库的 C#.NET 4.5 解决方案。 CI 机器上未安装 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 的情况下继续构建?
谢谢!莱因哈特
我必须先删除对已注册 COM 接口的引用。然后,.dll 工作正常。
谢谢解答!
我在集成服务器上工作,现在我想构建一个引用 COM 库的 C#.NET 4.5 解决方案。 CI 机器上未安装 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 的情况下继续构建?
谢谢!莱因哈特
我必须先删除对已注册 COM 接口的引用。然后,.dll 工作正常。 谢谢解答!