我指的是用C ++编写的OCX控件,该控件针对来自.NET 3.5 C#DLL的本机x86代码。我收到此非严重错误消息。寻找如何摆脱它。我已经在网上搜索过,但到目前为止我发现的参考文献并没有帮助。
COM参考'SIGPLUSLib'是ActiveX控件'AxSIGPLUSLib'的互操作程序集,但是由编译器使用/ link标志标记为链接。此COM参考将被视为参考,并且不会链接。
我已经遍历了引用SigPlusLib和AxSigPlusLib的属性,但是我看不到任何一个都被标记为与/ link标志链接的地方。
我看过的链接无济于事
[link3这建议将embed interop设置为false,但是我在SigPlusLib或AxSigPlusLib的属性中找不到该选项。
当您直接从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