Ответ 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.