问题: 从Visual Studio 2010创建新的SilverLight应用程序项目时,SilverLight应用程序项目的引用指向.Net Framework 2.0程序集。但我需要使用自.Net Framework 4.0以来仅提供的一些功能。
已经完成了一些谷歌搜索,但没有得出结论。
有没有办法在Vs2010中更新SilverLight应用程序项目的目标.Net Framework版本?
答案 0 :(得分:9)
Silverlight和完整的.NET Framework是分开的东西,恰好分享了很多共同点。这些版本号变得更加令人困惑,但这里有......
Silverlight 1没有托管代码,所以我会跳过它。
Silverlight 2,3和4都有各种程序集的版本号,如“2.0.5.0”(System.dll,System.Core.dll等等) - “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使用)。
为了在这些工作中抛出另一个扳手,Silverlight for Windows Phone 7使用.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-上运行的类库”变得更加容易。比如“那里的东西(完整的.NET,Silverlight,Windows Phone,XBox 360上的XNA,也许像Mono这样的其他人),开发人员不必担心我刚才提到的东西。
希望这会使事情更加清晰,但却相当混乱。
所以回到你的问题 - 你不能“从Silverlight中定位.NET 4”,但是如果有一个来自.NET 4的CLR或基类库的功能,它也可能在Silverlight 4中。如果您可以列出您正在寻找的特定功能,我可以告诉您它们是否在Silverlight 4中。