Версии F # и .Net - PullRequest
       27

Версии F # и .Net

4 голосов
/ 30 мая 2010

В данный момент я пишу программу на F #, которую я указал в настройке проекта Visual Studio для нацеливания на .Net 3.5, и это самое высокое предложение, исходя из теории, что я мог бы также получить лучшее из доступных.

Тогда я попробовал запустить скомпилированную программу на компьютере с XP, не ожидая, что она сработает, а просто посмотреть, что произойдет. Неудивительно, что я только что получил сообщение об ошибке, требующее соответствующей версии фреймворка, но на удивление это было не 3.5, а 2.0.50727.

Дополнительной загадкой является версия MSBuild, которую я использую для компиляции релизной версии программы, которую я нашел в каталоге framework 3.5, но претендует на то, чтобы быть framework 2.0 и сборкой 3.5. Я только предположил, что это была правильная версия MSBuild для использования, потому что она, казалось, соответствовала самой высокой версии фреймворка, F #, кажется, мог бы предназначаться, но я должен использовать другую версию? У кого-нибудь есть идеи, что происходит?

C:\Windows>dir/s msbuild.exe
 Volume in drive C is OS
 Volume Serial Number is 0422-C2D0

 Directory of C:\Windows\Microsoft.NET\Framework\v2.0.50727

27/07/2008  19:03            69,632 MSBuild.exe
               1 File(s)         69,632 bytes

 Directory of C:\Windows\Microsoft.NET\Framework\v3.5

29/07/2008  23:40            91,136 MSBuild.exe
               1 File(s)         91,136 bytes

 Directory of C:\Windows\Microsoft.NET\Framework\v4.0.30319

18/03/2010  16:47           132,944 MSBuild.exe
               1 File(s)        132,944 bytes

 Directory of C:\Windows\winsxs\x86_msbuild_b03f5f7f11d50a3a_6.0.6000.16386_none_815e96e1b0e084be

20/10/2006  02:14            69,632 MSBuild.exe
               1 File(s)         69,632 bytes

 Directory of C:\Windows\winsxs\x86_msbuild_b03f5f7f11d50a3a_6.0.6000.16720_none_81591d45b0e55432

27/07/2008  19:00            69,632 MSBuild.exe
               1 File(s)         69,632 bytes

 Directory of C:\Windows\winsxs\x86_msbuild_b03f5f7f11d50a3a_6.0.6000.20883_none_6a9133e9ca879925

27/07/2008  18:55            69,632 MSBuild.exe
               1 File(s)         69,632 bytes

C:\Windows>cd Microsoft.NET\Framework\v3.5

C:\Windows\Microsoft.NET\Framework\v3.5>msbuild /ver
Microsoft (R) Build Engine Version 3.5.30729.1
[Microsoft .NET Framework, Version 2.0.50727.3053]
Copyright (C) Microsoft Corporation 2007. All rights reserved.

3.5.30729.1

Ответы [ 2 ]

8 голосов
/ 30 мая 2010

Это потому, что версии .NET немного сбивают с толку. Языки, среда выполнения и сама библиотека имеют отдельные номера версий. .NET 3.5 работает на версии 2.0 среды выполнения и представляет собой просто набор дополнительных сборок. Если вы не ссылаетесь ни на одну из новых сборок, ваше приложение по сути является приложением 2.0, поскольку ядром для .NET 3.5 является 2.0.

К счастью, в последнем выпуске библиотека, среда выполнения и C # называются версией 4.

В вики-статье по .NET есть более подробная информация об этом.

4 голосов
/ 30 мая 2010

Что касается F #, в частности, в настоящее время доступны две версии:

  • Версия, которая поставляется с Visual Studio 2010 - это последняя версия, которую вы можете получить, и она разработана для .NET 4.0 (как отмечает Брайан) - совершенно новая версия среды выполнения. Эта версия F # использует некоторые функции, доступные в библиотеках .NET 4.0, поэтому программы на F #, скомпилированные для .NET 4.0, не будут работать в .NET 2.0.

  • Версия для Visual Studio 2008 (также называется CTP). Эта версия производит сборки, совместимые со средой выполнения 2.0 (которая также используется в .NET 3.0 и 3.5). Если вы используете только сборки .NET 2.0, то ваше приложение будет работать на .NET 2.0, но если вы используете WPF (.NET 3.0) или LINQ (.NET 3.5), вашему приложению потребуется более новая версия .NET.

В любом случае приложения F # также должны распространяться с FSharp.Core.dll (для .NET 4.0 или 2.0), который является средой выполнения F # (содержит некоторые функции, которые необходимы программам F #, но недоступны в .NET, независимо от версии).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...