如何从托管项目中引用本机WinRT组件

本文关键字:引用 本机 WinRT 组件 项目 | 更新日期: 2023-09-27 18:09:14

据说您可以创建一个可以在c#中使用的c++ WinRT组件。我有一个简单的测试项目——一个c# XAML应用程序和一个仅使用基本WinRT组件项目模板的c++项目。当我尝试在c# XAML项目中添加项目引用时,它说它无法添加引用(不确定原因)。我可以构建本机WinRT组件,并生成。winmd文件,我可以使用添加引用对话框中的浏览按钮手动添加对该。winmd文件的引用。这允许我访问本机库中的方法,但是当我构建时,它说它正在使用平台。IDisposable,但该类型是在未引用的程序集中定义的。我还没有看到任何演示这个场景的会议。

如何从托管项目中引用本机WinRT组件

找到答案了!看起来这是一个小故障,但它有一个解决方案:http://social.msdn.microsoft.com/forums/en - us/winappswithnativecode/thread/1900bd21 - 8693 - 4127 - 800 - a - f35cfd5daac2

基本上,首先清理WinRT组件项目,然后添加引用,然后手动向平台添加引用。

您引用的c++ WinRT程序集可能使用了实现IDisposable接口的对象,因此您还必须引用包含该接口的c++程序集。

所以我遇到了类似的问题,在添加了微软的参考之后。vclib,我无法部署。然而,我注意到,默认情况下WinRT组件被编译为x86代码,而c# Metro风格的应用程序针对任何cpu,这是我的情况下的根本原因。将c#应用程序切换到x86解决了问题。