10

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

4

3 回答 3

8

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

基本上,首先清理 WinRT 组件项目,然后添加引用,然后手动将引用添加到位于 \VC\bin 中的 platform.winmd,然后您就可以开始了。

于 2011-09-21T14:41:10.720 回答
2

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

于 2011-09-20T22:14:56.740 回答
2

所以我遇到了类似的问题,在添加了对 Microsoft.VCLibs 的引用后,我无法部署。但是我注意到,默认情况下 WinRT 组件被编译为 x86 代码,而 C# Metro 风格应用程序针对任何 cpu,这在我的案例中是根本原因。将 C# 应用程序切换到 x86 解决了该问题。

于 2011-09-25T11:09:59.150 回答