如何从托管项目引用本机WinRT组件? 已经说过,您可以创建一个C++的WRET组件,可以在C语言中使用。我有一个简单的测试项目——一个C xxxl应用程序,和一个C++项目,只使用基本的WRET组件项目模板。当我试图在C#XAML项目中添加项目引用时,它说它无法添加引用(不确定为什么)。我可以构建本机WinRT组件,并生成一个.winmd文件,我可以使用“添加引用”对话框中的“浏览”按钮手动添加对此.winmd文件的引用。这允许我访问本机库中的方法,但当我构建时,它表示它正在使用Platform.IDisposable,但该类型是在未引用的程序集中定义的。我没有看到任何一个会话演示这个场景。< P>引用的C++ WiRT程序集可能使用实现IDISPOSILL接口的对象,所以您也必须引用包含接口的C++程序集。 < P>找到答案!看起来这是个小故障,但有一个解决办法:

如何从托管项目引用本机WinRT组件? 已经说过,您可以创建一个C++的WRET组件,可以在C语言中使用。我有一个简单的测试项目——一个C xxxl应用程序,和一个C++项目,只使用基本的WRET组件项目模板。当我试图在C#XAML项目中添加项目引用时,它说它无法添加引用(不确定为什么)。我可以构建本机WinRT组件,并生成一个.winmd文件,我可以使用“添加引用”对话框中的“浏览”按钮手动添加对此.winmd文件的引用。这允许我访问本机库中的方法,但当我构建时,它表示它正在使用Platform.IDisposable,但该类型是在未引用的程序集中定义的。我没有看到任何一个会话演示这个场景。< P>引用的C++ WiRT程序集可能使用实现IDISPOSILL接口的对象,所以您也必须引用包含接口的C++程序集。 < P>找到答案!看起来这是个小故障,但有一个解决办法: ,c#,windows-8,windows-runtime,c++-cx,C#,Windows 8,Windows Runtime,C++ Cx,基本上,首先清理WinRT组件项目,然后添加引用,然后手动添加对位于\VC\bin中的platform.winmd的引用,然后就可以开始了。因此我遇到了类似的问题,在添加对Microsoft.VCLibs的引用后,我无法部署。然而,我注意到,默认情况下WinRT组件被编译为x86代码,而C#Metro风格的应用程序针对的是任何cpu,这是我的问题的根本原因。将C语言应用程序转换为X86解决了问题。< /P>什么C++汇编?据推测,WinRT的所有核心程序集都已被自动引用。“引用”对话框中没有其他

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

因此我遇到了类似的问题,在添加对Microsoft.VCLibs的引用后,我无法部署。然而,我注意到,默认情况下WinRT组件被编译为x86代码,而C#Metro风格的应用程序针对的是任何cpu,这是我的问题的根本原因。将C语言应用程序转换为X86解决了问题。< /P>什么C++汇编?据推测,WinRT的所有核心程序集都已被自动引用。“引用”对话框中没有其他标准程序集可供选择。@Jeremy看起来您需要向.NET应用程序添加对
Microsoft.VCLibs
的引用,以便它解析
平台.IDisposable
(顺便说一句,我希望它被投影为
系统.IDisposable
,但它没有发生…)。但是,将其添加为引用似乎会在部署时引起问题。可能是一个开发预览怪癖。是的,我注意到了Microsoft.VCLibs并尝试了它,它看起来就是定义它的地方,但我在部署时也遇到了错误。将不得不研究包装材料-也许VCLIB必须包含在包装中才能工作?有人能让这个工作吗?也许你应该发布一个新的问题,因为你可能会得到一个回复,因为原来的问题现在有点改变了。