我需要实现一个包装程序,以将一些本机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#中使用只读的 Collections 2023-04-09
- C#基于Sockets类实现TCP通讯 2023-05-16
- c# – ASP.NET MVC Windows身份验证和DirectoryServices – 获取当前用户的邮件地址会引发InvalidCastException 2023-09-19
- WPF实现监听快捷键的方式分享 2023-07-18
- C#实现给Word每一页设置不同文字水印的方法详解 2023-06-27
- C# 9 中新加入的关键词 init,record,with 2023-03-09
- 详解C# 利用反射根据类名创建类的实例对象 2022-11-08
- Unity实现简单虚拟摇杆 2023-02-08
- C#使用System.Buffer以字节数组Byte[]操作基元类型数据 2023-06-05
- WindowsForm移动一个没有标题栏的窗口的方法 2023-03-08