首页 > 解决方案 > COM / Active X 用户控件不能嵌入互操作类型

问题描述

我目前正在尝试在 Windows 窗体应用程序中使用“Adobe PDF Reader”Active X 控件。

将此控件添加到窗体中会在项目中创建两个新引用

AcroPDFLib(名称:Interop.AcroPDFLib) AxAcroPDFLib(名称:AxInterop.AcroPDFLib)

在 .csproj 文件中,我得到了两个 COM 参考元素。

我一直在努力寻找关于我现在正在努力解决的问题的文档。

我想要做的是启用“嵌入互操作类型”但是,我无法做到这一点。

我可以将 AcroPDFLib 的嵌入互操作类型设置为 true。但是编译器告诉我它仍然将其视为参考,因为它是 AxAcroPdf 的参考,并且没有嵌入。

如果我尝试嵌入 AxAcroPdfLib,它说它不能,因为在我的代码中我必须创建一个 AxAcroPdf 实例(这是显示 pdf 的控件)并建议我改用该界面。但是没有界面可以使用。COM 库 (IAcroAXDocShim) 中的接口不是由 AxAcroPdf 实现的,而是由它封装的,AxAcroPDF 有一个 IAcroAXDocShim 类型的私有字段。

所以我看不到我想要嵌入其中任何一个 COM 库的方法。

这引起了我的问题,因为我的构建服务器无法构建项目,但它没有这些 COM dll,而且我一直在阅读我不应该从 COM dll 创建 Nuget 包。所以我对如何解决这个问题有点迷茫

标签: c#cominteropactivex

解决方案


推荐阅读