c#-从另一个项目引用Windows Phone运行时组件DLL / WinMD
作者:互联网
我需要实现一个包装程序,以将一些本机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的名称.
标签:visual-studio-2012,windows-phone-8,windows-phone,c-cx,c 来源: https://codeday.me/bug/20191123/2065931.html