我有很多这样的警告,但我不知道它们是什么意思。
有谁知道这是什么?
“运行时封送处理程序无法封送 'IOleWindow.GetWindow' 的至少一个参数。因此,此类参数将作为指针传递,并且可能需要不安全的代码来操作。”
我还应该指出它与“c:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets”有关
我有很多这样的警告,但我不知道它们是什么意思。
有谁知道这是什么?
“运行时封送处理程序无法封送 'IOleWindow.GetWindow' 的至少一个参数。因此,此类参数将作为指针传递,并且可能需要不安全的代码来操作。”
我还应该指出它与“c:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets”有关
您可以使用类型库导入器 (tblimp)在 Visual Studio 外部导入 DLL 并使用生成的引用而不是让 Visual Studio 创建它,从而消除警告。
可以在这里找到很好的情况解释:
您可以放心地忽略这些警告。您可以通过查阅此页面了解有关此问题的更多信息:http: //msdn.microsoft.com/en-us/library/aa289520%28v=vs.71%29.aspx
“In/Out C-Style Arrays”部分特别相关。底线:如果警告中指定方法的返回缓冲区接受“in”值,则必须应用文章中的修改。但是由于所有列出的方法都只处理缓冲区,因此警告对您和框架都没有影响。
但是,如果您想永久消除警告(例如,当您执行“全部重建”时),您将别无选择,如文章中所述。您将不得不反汇编互操作包装器(使用 ildasm),编辑 IL 并重新组装(使用 ilasm)。此过程也称为“创意往返”。
警告消息的主要问题是它仅指示项目而不是有问题的 COM,因此消除过程似乎是追踪此问题的唯一方法。