COM参考'XyzLib'是ActiveX控件'AxXyzLib'的互操作程序集,但被编译器标记为带有/ link标志的链接

问题描述 投票:1回答:1

我指的是用C ++编写的OCX控件,该控件针对来自.NET 3.5 C#DLL的本机x86代码。我收到此非严重错误消息。寻找如何摆脱它。我已经在网上搜索过,但到目前为止我发现的参考文献并没有帮助。

COM参考'SIGPLUSLib'是ActiveX控件'AxSIGPLUSLib'的互操作程序集,但是由编译器使用/ link标志标记为链接。此COM参考将被视为参考,并且不会链接。

我已经遍历了引用SigPlusLibAxSigPlusLib的属性,但是我看不到任何一个都被标记为与/ link标志链接的地方。

我看过的链接无济于事

link1

link2

[link3这建议将embed interop设置为false,但是我在SigPlusLib或AxSigPlusLib的属性中找不到该选项。enter image description here

c# .net com visual-studio-2019 ocx
1个回答
0
投票

当您直接从C#或VB.NET使用OCX时,就会发生这种情况。

为了解决这个问题,您必须使用OCX供应商提供的PIA(主互操作程序集)进行编程。

例如,Microsoft提供Office的PIA。Office primary interop assemblies

但是,OCX供应商并不总是提供PIA。请询问您的OCX供应商。

或者,即使供应商不提供,也可以使用tlbimp.exe创建自己的PIA。但是,不建议这样做,因为当供应商功能改进或发生错误修复时,将对其进行重新处理。

如果您或您的公司是OCX供应商,那么创建并提供PIA就是正确的选择。

请参阅以下内容。Primary Interop AssembliesProducing Primary Interop AssembliesGenerating Primary Interop AssembliesTlbimp.exe (Type Library Importer)Programming with Primary Interop Assemblies

Interoperating with unmanaged codeExposing COM Components to the .NET Framework

© www.soinside.com 2019 - 2024. All rights reserved.