Подтвердить что ты не робот

Правильная версия Fsharp.Core

Я создаю консольное приложение F # с Visual Studio 2013 Ultimate. Целевая структура:.Net 4.5

Версия FSharp.Core, установленная на моем компьютере (предположительно, путем установки VS 2013), - это 4.3.1.0.

В NuGet есть две версии FSharp.Core, 4.0.0, опубликованные 12 апреля 2012 года, и одна с идентификатором версии Fsharp.Core.3 0.0.2, опубликованной 5 марта 2013 года.

Я ищу руководство относительно того, когда нужно использовать каждую из этих версий, нумерация версий меня сбивает с толку, и я ожидал найти последнюю версию выпуска на NuGet.

Я что-то пропустил?

4b9b3361

Ответ 1

Вы не должны получать FSharp.Core из nuget. Сегодня Microsoft не публикует никаких официальных бит F # для nuget (хотя это может потенциально измениться в будущем). Общим для пакетов сторонних производителей является пакет FSharp.Core(так как предположительно это версия, используемая для тестирования/проверки этого стороннего компонента), но nuget в настоящее время не следует использовать в качестве механизма для получения обновлений FSharp.Core или новых версий.

История версий для FSharp.Core, к сожалению, довольно сложная и определенно не такая простая, как "более высокая версия означает более новую". Главное, чтобы понять, что есть 2 оси - какая версия F # поддерживает время выполнения и какая версия/профиль платформы .NET нацелена на нее.

Ниже приведены официальные версии FSharp.Core, поставляемые с VS 2013 (найдите их в %ProgramFiles(x86)%\Reference Assemblies\Microsoft\FSharp).

  • 4.3.1.0 (F # 3.1/.NET 4) Это самая последняя официальная версия. Если у вас нет требования нацеливаться на .NET 2 или вы используете какой-то унаследованный компонент F #, который не будет работать с 3.1, это версия, которую вы должны использовать для любого нового рабочего стола.
  • 4.3.0.0 (F # 3.0/.NET 4) Это те же биты, которые поставляются с VS 2012. Он включен, чтобы вы могли продолжить работу над проектами F # 3.0 на VS 2013 без перенацеливания их до 3.1. Вы должны использовать это, если у вас есть устаревший проект рабочего стола F # 3.0, который вы еще не готовы переместить в 3.1.
  • 2.3.0.0 (F # 3.0/.NET 2) Это те же биты, которые поставляются с VS 2012. Единственная причина для этого - нацелиться на .NET 2..NET 2 стороны не развиваются дальше, btw - новые функции, версии и т.д. Будут выполняться для FSharp.Core для таргетинга .NET 4+;.NET 2 FSharp.Core по-прежнему полностью поддерживается, но он заморожен.
  • 3.3.1.0 (F # 3.1/ "Portable" ) Эта версия предназначена для переносимого .NET-профиля 7 (.NET 4.5/Windows Store). Используйте это, если вы создаете компонент для приложения для хранилища Windows, и вы не заботитесь о Silverlight. Этот профиль недавно поддерживается в VS 2013.
  • 2.3.5.1 (F # 3.1/ "Portable (Legacy)" ) Эта версия предназначена для переносного профиля .NET 47 (.NET 4/Silverlight 5/Windows Store). Используйте это, если вы создаете компонент Silverlight. Этот профиль также был поддержан в VS 2012 и упоминался в то время как просто "Portable".
  • 2.3.5.0 (F # 3.0/ "Portable (Legacy)" ). Эта версия предназначена для переносного профиля .NET 47 (.NET 4/Silverlight 5/Windows Store). Это те же биты, которые были включены в VS 2012. Включено в VS 2013, чтобы вы могли продолжить работу над портативными /Silverlight проектами F # 3.0.

.NET-портативные профили - это большая PITA и вызывают тонну сложности. Этот сайт содержит хорошее резюме, чтобы помочь понять: http://blog.stephencleary.com/2012/05/framework-profiles-in-net.html

Итак, для вашего конкретного сценария (новое консольное приложение) используйте 4.3.1.0.

Изменить 7/2015:

Вот таблица, которая, вероятно, объясняет историю лучше, чем стена текста выше. Я попытался использовать цвета, чтобы указать на мотивацию номеров версий. Вы увидите, что версии портативных библиотек были немного ad hoc и непоследовательны в VS 2012 и 2013 годах, но окончательно согласованы и предсказуемы, начиная с VS 2015. Это актуально только с выпуском F # 4.0.

введите описание изображения здесь