我需要实现一个包装程序,以将一些本机C代码公开给C#,并且已经按照本教程进行操作:http://www.silverlightshow.net/items/Windows-Phone-8-Native-Code-Support.aspx到目前为止,在我的C#测试项目中,只要我引用了整...
我需要实现一个包装程序,以将一些本机C代码公开给C#,并且已经按照本教程进行操作:
http://www.silverlightshow.net/items/Windows-Phone-8-Native-Code-Support.aspx
到目前为止,在我的C#测试项目中,只要我引用了整个项目(.sln),从运行时组件项目实例化用C/C++X编写的类并使用该类中的方法就不会有问题.
Visual Studio不允许我单独引用运行时组件DLL,但允许我引用项目中的.winmd文件.然后,C#可以正确识别名称空间,但是在运行时,尝试创建同一对象时出现TypeLoadException.
这似乎不是名称空间问题(如此处所述:Changing namespace name of C++ component in Windows Phone causes exception),因为只要我创建项目引用(或者引用项目与.winmd的引用是否会以某种方式影响名称空间?),一切都就可以了.
是否可以以某种形式捆绑运行时组件,使最终用户可以在不需要提供整个项目的情况下引用该组件?
解决方法:
您需要在WMAppManifest.xml中添加以下内容
<ActivatableClasses>
<InProcessServer>
<Path>YourComponent.dll</Path>
<ActivatableClass ThreadingModel="both" ActivatableClassId="YourComponentNamespace.YourComponent"/>
</InProcessServer>
</ActivatableClasses>
用YourComponent作为WinMD的名称.
本文标题为:c#-从另一个项目引用Windows Phone运行时组件DLL / WinMD
- C#中Winform 实现Ajax效果自定义按钮 2022-12-01
- C#使用NPOI实现Excel和DataTable的互转 2023-05-22
- 浅析C# 9.0 新特性之 Lambda 弃元参数 2023-03-03
- c#中的扩展方法学习笔记 2023-01-06
- C# AutoMapper 使用方法总结 2023-02-25
- Unity实现大转盘的简单笔记 2023-01-11
- C#使用LINQ查询操作符实例代码(一) 2023-06-09
- C#语言中字符类char的使用方法(总结) 2022-11-06
- C#中Foreach循环遍历的本质与枚举器详解 2023-04-27
- c# – SqlGeography从多边形获取多边形 2023-11-13