Как нацелиться на .net framework 4.0 из прикладного проекта SilverLight 4? - PullRequest
3 голосов
/ 07 февраля 2011

Проблема: при создании нового проекта приложения SilverLight из Visual Studio 2010 ссылка на проект приложения SilverLight указывает на сборки .Net Framework 2.0.Но мне нужно использовать только некоторые функции, доступные с .Net Framework 4.0.

Сделал несколько поисков в Google, но не пришел к выводу.

Есть ли способ обновить целевую версию .Net Frameworkдля проекта приложения SilverLight в Vs2010?

1 Ответ

9 голосов
/ 07 февраля 2011

Silverlight и полноценный .NET Framework - это разные вещи, которые просто имеют много общего.Номера версий этих программ становятся еще более запутанными, но здесь все идет ...

В Silverlight 1 не было управляемого кода, поэтому я пропущу это.

Silverlight 2, 3 и 4у всех есть номера версий, такие как «2.0.5.0» для различных сборок (System.dll, System.Core.dll и т. д.) - «5» должен выглядеть как «S» для Silverlight, а также делаетон уникален по сравнению с «2.0.0.0», который используется в полной версии .NET Framework.Это важно, потому что Silverlight является подмножеством .NET Framework, поэтому, если приложение загружает DLL, они могут подумать, что 2.0.0.0 означает «я могу использовать API Foo», но этот API может быть выделен из Silverlight - так по крайней мере »2.0.5.0 «подразумевает, что« это не совсем то же самое ».

Silverlight использует CLR, называемый« CoreCLR », тогда как полная .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 для Windows Phone 7 использует .NET Compact Framework, которыйимеет еще другой CLR (NETCF CLR).

Последнее, на что следует обратить внимание, - это то, что недавно Microsoft запустила «Проект переносимой библиотеки» (см. здесь: http://blogs.msdn.com/b/bclteam/archive/2011/01/19/announcing-portable-library-tools-ctp-justin-van-patten.aspx), цель которого - упростить его.создавать библиотеки классов, которые могут работать со всеми различными ".NET-подобными" вещами (полноценными .NET, Silverlight, Windows Phone, XNA на XBox 360, возможно, другими, такими как Mono), без необходимости беспокоиться о проблемах разработчика.вещи, которые я только что упомянул выше.

Надеюсь, это проясняет ситуацию, но это довольно запутанно.

Так что, чтобы вернуться к вашему вопросу - вы не можете "нацелиться на .NET 4 от Silverlight"но если в .NET 4 есть функция CLR или библиотеки базовых классов, она может быть и в Silverlight 4.Если вы можете перечислить конкретные функции, которые вы ищете, я могу сказать вам, если они в Silverlight 4.

...