C# 如何将外部非windows phone类库项目引用添加到windows phone项目?

C# 如何将外部非windows phone类库项目引用添加到windows phone项目?,c#,.net,windows,winapi,windows-phone-7,C#,.net,Windows,Winapi,Windows Phone 7,大家好,我是windows phone开发的新手,我正在尝试构建一个数据驱动的应用程序,我在其中创建了我的BLL、EL和DAL,它们都是windows phone类库类型的项目。 在我的解决方案中,我还有一个类型类库的额外项目,其中我添加了对“MyGeneration.doodas.dll”文件的引用。 现在,我希望在windows phone应用程序项目中引用此项目。但当我尝试添加引用时,VS 2010会显示…“无法添加所选项目引用。项目引用必须是另一个与windows phone相同或更低版

大家好,我是windows phone开发的新手,我正在尝试构建一个数据驱动的应用程序,我在其中创建了我的BLL、EL和DAL,它们都是windows phone类库类型的项目。 在我的解决方案中,我还有一个类型类库的额外项目,其中我添加了对“MyGeneration.doodas.dll”文件的引用。 现在,我希望在windows phone应用程序项目中引用此项目。但当我尝试添加引用时,VS 2010会显示…“无法添加所选项目引用。项目引用必须是另一个与windows phone相同或更低版本的silver light for windows phone项目”。 . . .
在这种情况下,请帮助我。谢谢

这样做行不通,也行不通。phone运行时只能访问完整的.NET库的一个子集(嗯,有点),因此任何非phone-7库都不太可能运行。为了阻止这种令人惊讶的行为,只有基于该运行时构建的库才允许被引用

如果可能,针对phone 7框架,使用相同的c#文件创建一个新项目。现在参考这个项目。有些位很可能无法编译(这表明它也不会运行),这可以通过一些if方式进行纠正(
#if
块、可选的
.cs
文件等)

通过将现有项目变成一个“可移植类库”,您可能也会有一些运气——然而,这是所有通用框架中限制最严格的子集,并且不太可能仍然编译(没有更改)

使用Portable类库项目,您可以构建在.NET Framework、Silverlight、Windows Phone 7或Xbox 360平台上工作而无需修改的Portable程序集


(来自)

非常感谢马克·格雷威尔。但是,您能否提供一些关于可移植类库项目的详细信息,以及如何在这些类库中添加一些其他项目引用。Thanks@SoftBuildersPk它们只是一个受限的库,将自身限制在上述其他库的公共交叉点。可移植类库只能引用可移植框架中的内容:)要创建可移植类库,请首先从MSDN安装VS010的可移植类库工具包(它内置在VS11中)。您可能需要将csproj重新创建为“可移植类库”,但在此之后,您应该能够从多个项目类型引用它。并非所有平台都支持所有这些程序集。在可移植类库项目中,指定要针对的平台,并且在项目中仅引用这些平台支持的程序集。如果您尝试引用目标平台不支持的程序集,Visual Studio会警告您不兼容。**(MSDN)**这就是我所知道的,因为在我将非WP7类库的引用插入到WP7项目时,这是有意义的。难道没有办法做我想做的事吗??)Thanks@SoftBuildersPk您试图从PCL中引用的内容是什么?非windows phone类库,即可以添加到任何ASP.NET站点项目中的简单类库。