0

我开始开发 Windows Phone 应用程序,甚至在 WPF 方面有一定的背景是我第一次使用 Silverlight。有一些东西我还不明白:

  1. Silverlight 是一个完整的执行引擎吗?替换 .NET 引擎?或者它是一组程序集?
  2. Silverlight 和 .NET 程序集是否不同?它们兼容吗?
  3. 为什么 Visual Studio 2012 中的 Winows Phone 8 项目显示 3 个引用,但当您查看 csproj 时,只有 Microsoft.Phone.Controls.dll 的引用?

关于第3点,截图更清楚:

在此处输入图像描述

这 3 个引用是使用以下 csproj 行创建的:

<Reference Include="Microsoft.Phone.Controls, Version=8.0.0.0, Culture=neutral, PublicKeyToken=24eec0d8c86cda1e, processorArchitecture=MSIL" />
4

1 回答 1

1
  1. 稍微简化后,您可以将 Silverlight 视为完整(桌面).NET 框架的一个子集。更重要的是,Windows Phone 8 上可用的 .NET 支持“传统”.NET 功能的一个子集。从 WPF 的角度来看,您会注意到不支持命令,例如在桌面应用程序中使用命令,还有许多其他较小的差异。
  2. 是的,Silverlight 和桌面 .NET 程序集是不同的。虽然这两个环境中的许多类几乎相同,但实际的程序集却不同。例如,您不能使用桌面 .NET 框架构建的程序集并直接在 Windows Phone 上使用它(尽管如果您有源代码,则可以将源代码构建到 Windows Phone 程序集中)
  3. 不知道这里的问题是什么。我通常只是将引用Windows Phone视为我的项目中的标准框架程序集(当然,还有我选择引用的任何其他程序集)

如果您正在研究跨 .NET 平台(例如 Desktop、Phone、Win8/RT)共享代码,您会想看看Portable Class Libraries。这些有效地针对可以在所有支持的平台上运行的 .NET 功能的公共子集。例如,这是一种在 Windows Phone 和 Windows 8 应用程序之间共享代码的便捷方式。

于 2013-05-19T11:41:27.720 回答