我已经写了一个c++/cli程序,它调用我的本机c++函数,该函数将结构指针作为参数。所以这就像我用c++/cli为我的原生c++编写了一个包装器,这样我就可以将它暴露给c# wcf程序(它充当另一个c++客户端的服务器)。
现在,当我编译我的c++/cli程序时,我没有得到任何错误,它被编译并生成了这个c++/cli的dll,但是当我查看输出窗口时,我发现链接失败了(这并没有影响编译)。下面是我在输出文件中看到的消息。
1>Linking...
1>Embedding manifest...
1>Caching metadata information for c:\windows\system32\msxml6.dll...
1>Could not cache metadata for c:\windows\system32\msxml6.dll: reflection failed.所以我想知道这条消息是什么意思,如果我在c# wcf程序中使用这个c++/cli dll,这是否会影响我的c# wcf程序,以及我如何摆脱这条消息。
发布于 2012-05-19 05:22:18
我非常确定MSXML6.DLL是一个本机DLL,因此它没有任何托管元数据。
我用.NET反射器验证了这一点:
// Assembly msxml6
Location: C:\Windows\System32\msxml6.dll
Name: msxml6, 'C:\Windows\System32\msxml6.dll' is not a .NET module.确保在链接器->输入->“附加依赖项”项目选项中列出其导入库,而不是像引用.NET程序集那样尝试引用它。
https://stackoverflow.com/questions/10657528
复制相似问题