【问题标题】:How to target .net framework 4.0 from a SilverLight 4 Application Project?如何从 SilverLight 4 应用程序项目中定位 .net framework 4.0?
【发布时间】:2011-02-07 04:10:28
【问题描述】:

问题: 从 Visual Studio 2010 创建新的 SilverLight 应用程序项目时,SilverLight 应用程序项目的引用指向 .Net Framework 2.0 程序集。但我需要使用一些仅从 .Net Framework 4.0 开始可用的功能。

已经进行了几次 Google 搜索,但没有得出任何结论。

有没有办法在 Vs2010 中更新 SilverLight 应用程序项目的目标 .Net Framework 版本?

【问题讨论】:

    标签: visual-studio-2010 silverlight-4.0 .net-4.0


    【解决方案1】:

    Silverlight 和完整的 .NET Framework 是分开的,只是碰巧有很多共同点。这些的版本号变得更加混乱,但这里......

    Silverlight 1 没有托管代码,所以我将跳过它。

    Silverlight 2、3 和 4 对于各种程序集(System.dll、System.Core.dll 等)都有类似“2.0.5.0”的版本号 - “5”的意思是Silverlight 的“S”,与完整的 .NET Framework 使用的“2.0.0.0”相比,它也是独一无二的。这很重要,因为 Silverlight 是 .NET Framework 的子集,因此如果应用程序加载 DLL,他们可能会认为 2.0.0.0 意味着“我可以使用 API Foo”,但该 API 可能是 Silverlight 的子集 - 所以至少“ 2.0.5.0”意味着“这不完全一样”。

    Silverlight 使用名为“CoreCLR”的 CLR,而完整的 .NET Framework 仅使用“CLR” - CoreCLR 是完整 CLR 的子集,并没有其所有功能(但在 Mac 上运行,因此这是一个加号)。 Silverlight 2 和 3 使用 CoreCLR 2,它非常接近完整的 CLR 2(由 .NET Framework 2-3.5 使用)。 Silverlight 4 使用 CoreCLR 4,它非常接近完整的 CLR 4(由 .NET Framework 4 使用)。

    为了在这些工作中发挥更大的作用,Windows Phone 7 的 Silverlight 使用了 .NET Compact Framework,它还有一个不同的 CLR(NETCF CLR)。

    最后要注意的是,最近微软已经启动了“便携式库项目”(见这里:http://blogs.msdn.com/b/bclteam/archive/2011/01/19/announcing-portable-library-tools-ctp-justin-van-patten.aspx),旨在更容易地构建可以在所有各种“.NET-like”上运行的类库那里的东西(完整的 .NET、Silverlight、Windows Phone、XBox 360 上的 XNA,也许还有像 Mono 之类的其他东西),而开发人员不必担心我上面提到的那些东西。

    希望这能让事情更清楚,但它相当混乱。

    所以回到您的问题 - 您不能“从 Silverlight 定位 .NET 4”,但如果 .NET 4 中有 CLR 或基类库的功能,它也可能在 Silverlight 4 中。如果您可以列出您正在寻找的特定功能,我可以告诉您它们是否在 Silverlight 4 中。

    【讨论】:

    • 很好的答案!这解释了我需要的一切。非常感谢!
    • 我想使用 NuGet 将 System.Json 安装到 Silverlight 4 应用程序中,它说该包针对 .NET Framework 4 并且无法安装。我在各种来源中读到 System.Json 实际上是为 SilverLight 设计的,所以我现在很困惑:|
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-09
    • 2017-07-31
    • 2022-11-22
    相关资源
    最近更新 更多