将C#库移植到Windows Phone 8?

5
我曾在使用Visual C#的winforms应用程序中使用Math.NET Neodym库进行项目开发。这是该项目的链接:Math.NET Neodym。现在,我想将其移植到Windows Phone 8上,在WP8 SDK中添加对该库的引用时,会出现以下错误信息:

无法添加对高版本或不兼容程序集的引用。

我之前问过这个问题,有人告诉我可以通过重新编译库来将其移植到WP8上。但我不知道该怎么做?我是要将库中的每个文件复制粘贴到新的WP8库项目中并进行编译吗?
2个回答

6
最简单的方法是将该项目转换为可移植类库。这样可以让它被Windows Phone和桌面应用程序使用。
您只需打开解决方案,并更改适当的项目属性即可实现此操作。但是,如果目标框架不支持任何类型,则需要重新设计或删除该库的部分内容。

非常感谢您的回答,但事实证明VS2012 Express没有可移植类库模板: http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj714086(v=vs.105).aspx我是一名学生,只有Express版本。:'( - 7VoltCrayon
1
@Suleman 那么你只需要直接将项目类型更改为 Windows Phone 库即可。 - Reed Copsey
太棒了!完美地工作了,而且只花了不到半分钟的时间 :) 谢谢你,Reed! - 7VoltCrayon
@Breedly 目前,PCL 不是 C++/CLI 的受支持目标 - 它需要 /clr:pure 才能在理论上工作,但编译器工具还不够完善。对于纯托管代码,我会直接使用 C#。 - Reed Copsey
@ReedCopsey 你说的 Windows phone lib 是什么意思? - onmyway133
@entropy 一个 Windows Phone 的库项目。 - Reed Copsey

1
请查看上一篇文章中对此问题的回答。这可能不是“更高版本”的问题,只是VS2012出现了一个无关紧要的错误信息。

我在属性中找不到“解除阻止”,你说的文件资源管理器是指 Windows 资源管理器对吧? - 7VoltCrayon
你确定无法添加引用的是同一个文件吗?如果在Windows资源管理器文件属性中没有“解除锁定”选项,则该文件已经被解除锁定,你应该不会有问题。这可能真的是一个平台兼容性问题。 - JustinAngel
是的,同一个文件。很奇怪,我甚至没有在源代码中编辑任何一行,就像@Reed Copsey上面提到的那样,只是创建了一个新的Windows Phone库类项目,并添加了Math.NET库的所有现有文件。编译,然后没有遇到任何问题就添加了dll。 - 7VoltCrayon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接