据说你可以创建一个可以在C#中使用的C++ WinRT组件。我有一个简单的测试项目 - 一个C#XAML应用程序和一个只使用基本WinRT组件项目模板的C++项目。当我尝试在C#XAML项目中添加项目引用时,它说它不能添加引用(不知道为什么)。我可以构建本机WinRT组件,并生成.winmd文件,并且可以使用添加引用对话框中的浏览按钮手动添加对此.winmd文件的引用。这允许我访问本地库中的方法,但是当我构建时,它表示它使用Platform.IDisposable,但是该类型在未引用的程序集中定义。我没有看到任何会议证明这种情况。如何从托管项目引用本机WinRT组件?
10
A
回答
8
找到答案!看起来就像是一个小故障,但它有一个变通: http://social.msdn.microsoft.com/Forums/en-US/winappswithnativecode/thread/1900bd21-8693-4127-800a-f35cfd5daac2
基本上,你首先清理的WinRT组件项目,那么你添加引用,然后添加一个参考手动platform.winmd位于\ VC \斌,那么你应该很好去。
2
您引用的C++ WinRT程序集可能使用实现IDisposable接口的对象,因此您还必须引用包含该接口的C++程序集。
2
因此,在添加对Microsoft.VCLibs的引用后,我遇到了类似的问题,我无法部署。但是我注意到,默认情况下,WinRT组件被编译为x86代码,而C#Metro风格的应用程序以任何cpu为目标,这是我的一个根本原因。将C#应用程序切换到x86可解决问题。
相关问题
- 1. WinRT XAML - 托管和非托管 - 它是如何工作的?
- 2. 如何通过引用非托管库传递托管数组?
- 3. C++/CLI:如何在本机类中存储托管引用?
- 4. 如何从非托管C++引用com.exe?
- 5. 从托管代码调用本机API
- 6. 在托管C++项目中添加对c#项目的引用
- 7. 托管GWT项目
- 8. 如何从托管代码获取本机调用堆栈?
- 9. 如何托管Django项目的管理静态文件?
- 10. 如何在已存在的主机上托管Django项目?
- 11. 如何搜索项目托管网站
- 12. 如何将nodeJS项目托管到Firebase?
- 13. 如何托管多个symfony项目?
- 14. Visual Studio 2010:本机上托管项目的依赖关系
- 15. 如何在从数组中选择随机项目后找到项目索引
- 16. 如何识别项目是否被托管C++项目或非托管C++项目
- 17. 将项目文件托管到Amazon s3
- 18. “托管项目源文件”在哪里?
- 19. 角2项目托管
- 20. Angular 4 firebase托管项目
- 21. 如何为不同的项目版本和管理angularjs组件
- 22. 将本机指针转换为C++ \ CLI托管对象引用?
- 23. 用于托管Maven项目的Bitbucket API
- 24. WinRT和托管作品之间的映射如何?
- 25. 构建管理:Eclipse项目vs Eclipse托管项目
- 26. 如何在本机C++ win32应用程序中托管JVM?
- 27. 将数组从托管代码传递到非托管C++ ActiveX组件
- 28. 如何使用Android SDK模拟器查看本地托管的项目?
- 29. 如何使用Intellij为我的Gradle项目设置本地托管端口?
- 30. 如何使用托管代码从非托管代码?
什么是C++程序集?据推测,WinRT的所有核心程序集都已经自动引用。在参考对话框中没有额外的标准组件可供选择。 –
@Jeremy看起来你需要添加一个对Microsoft.VCLibs到.NET应用程序的引用来解决'Platform.IDisposable'问题(在附注中,我会期望它被投影为System.IDisposable ',但它不会发生......)。但是,将其作为参考添加似乎会导致部署时出现问题。可能是开发预览怪癖。 –
是的,我注意到了Microsoft.VCLibs并尝试了它,它看起来就是它定义的位置,但我在部署时也遇到了错误。将不得不研究包装的东西 - 可能VCLibs必须包含在包中才能使用?任何人都可以得到这个工作? –