COM 引用 'XyzLib' 是 ActiveX 控件 'AxXyzLib' 的互操作程序集,但被编译器使用 /link 标志标记为 linked

COM Reference 'XyzLib' is the interop assembly for ActiveX control 'AxXyzLib' but was marked to be linked by the compiler with the /link flag

我引用了一个用 C++ 编写的 OCX 控件,目标是来自 .NET 3.5 C# DLL 的本机 x86 代码。我收到此非严重错误消息。寻找如何摆脱它。我在网上搜索过,但到目前为止我找到的参考资料没有帮助。

COM 参考 'SIGPLUSLib' 是 ActiveX 控件 'AxSIGPLUSLib' 的互操作程序集,但被编译器标记为 linked 与 /link 旗帜。此 COM 引用将被视为引用,不会被 linked。

我查看了参考文献 SigPlusLibAxSigPlusLib 的属性,但我没有看到任何地方它们已被标记为 linked with /link 标志。

我查看过的链接没有用

link1

link2

link3 This one suggested to set embed interop to false but I'm not finding that option in properties for SigPlusLib or AxSigPlusLib.

为什么嵌入互操作类型选项在引用属性中不可用的原因 window 显然是因为使用如此旧的 .NET 版本 (3.5) 构建了 DLL。我将 C# DLL 升级为使用 .NET 4.7.2,Embed Interop Types 选项可用,并显示在 SigPlusLib 中该选项设置为 TRUE。一旦我将它设置为 FALSE,错误消息就消失了。当我将控件添加到我的表单时,互操作包装器是自动生成的,而第二个 "SigPlusLib" 在由 Visual Studio 自动生成时默认设置了嵌入选项。