f#

f# - Versión correcta de Fsharp.Core



(2)

Hoy probablemente prefiero seguir estas pautas.

En resumen, puede / debe hacer referencia a FSharp.Core desde NuGet

Estoy creando una aplicación de consola F # con Visual Studio 2013 Ultimate. El marco objetivo es .Net 4.5

La versión de FSharp.Core instalada en mi computadora (probablemente al instalar VS 2013) es 4.3.1.0.

En NuGet hay dos versiones de FSharp.Core, 4.0.0 publicadas el 12 de abril de 2012 y una con una ID de Fsharp.Core.3 verison 0.0.2 publicada el 5 de marzo de 2013.

Busco una guía sobre cuándo se debe usar cada una de estas versiones, la numeración de las versiones me confunde y habría esperado encontrar la última versión de producción en NuGet.

¿Me estoy perdiendo de algo?


No debe obtener FSharp.Core de nuget. Microsoft no publica ningún F # bits oficial para nuget hoy (aunque esto podría cambiar potencialmente en el futuro). Es común que los paquetes de terceros incluyan FSharp.Core (ya que presumiblemente esa es la versión utilizada para probar / validar ese componente de terceros), pero nuget no debe usarse actualmente como un mecanismo para obtener actualizaciones de FSharp.Core o nuevas versiones .

La historia de la versión para FSharp.Core es bastante compleja, y definitivamente no es tan simple como "una versión más alta significa más nueva". Una cosa clave a tener en cuenta es que hay 2 ejes : qué versión de F # admite el tiempo de ejecución y a qué versión / perfil de .NET framework se dirige.

A continuación se muestran las versiones oficiales de FSharp.Core que se incluyen con VS 2013 (puede encontrarlas en %ProgramFiles(x86)%/Reference Assemblies/Microsoft/FSharp ).

  • 4.3.1.0 (F # 3.1 / .NET 4) Esta es la versión oficial más reciente. A menos que tenga el requisito de apuntar a .NET 2, o si está usando algún componente F # heredado que no funcionará con 3.1, esta es la versión que debe usar para cualquier aplicación de escritorio nueva.
  • 4.3.0.0 (F # 3.0 / .NET 4) Estos son los mismos bits que se enviaron con VS 2012. Se incluyen para que pueda continuar trabajando en los proyectos de F # 3.0 en VS 2013 sin tener que redirigirlos a 3.1. Debe usar esto si tiene un proyecto de escritorio F # 3.0 que aún no está listo para pasar a 3.1.
  • 2.3.0.0 (F # 3.0 / .NET 2) Estos son los mismos bits que se enviaron con VS 2012. La única razón para usar esto es si está apuntando a .NET 2. El lado .NET 2 de las cosas no se está desarrollando más, btw: se harán nuevas funciones, versiones, etc. para FSharp.Core targeting .NET 4+; El .NET 2 FSharp.Core todavía es totalmente compatible, pero está congelado.
  • 3.3.1.0 (F # 3.1 / "Portátil") Esta versión apunta al perfil portátil .NET 7 (.NET 4.5 / Tienda de Windows). Use esto si está creando un componente para una aplicación de la tienda de Windows y no le importa Silverlight. Este perfil es recientemente compatible en VS 2013.
  • 2.3.5.1 (F # 3.1 / "Portátil (heredado)") Esta versión apunta al perfil portátil .NET 47 (.NET 4 / Silverlight 5 / Windows Store). Use esto si está creando un componente Silverlight. Este perfil también se admitió en VS 2012, y en ese momento se lo llamó simplemente "Portátil".
  • 2.3.5.0 (F # 3.0 / "Portátil (heredado)") Esta versión apunta al perfil portátil .NET 47 (.NET 4 / Silverlight 5 / Windows Store). Estos son los mismos bits que se incluyeron en VS 2012. Se incluyen en VS 2013 para permitirle continuar trabajando en proyectos F / 3.0 portable / silverlight.

Los perfiles portátiles .NET son un gran PITA y causan un montón de complejidad. Este sitio tiene un buen resumen para ayudar a comprender: http://blog.stephencleary.com/2012/05/framework-profiles-in-net.html

Así que para su escenario específico (nueva aplicación de consola) use 4.3.1.0.

Edición 7/2015:

Aquí hay una tabla que probablemente explica la historia mejor que la pared de texto anterior. He intentado usar colores para indicar la motivación de los números de versión. Verá que el control de versiones de las bibliotecas portátiles fue un poco ad hoc e inconsistente en VS 2012 y 2013, pero finalmente es consistente y predecible a partir de VS 2015. Esto está actualizado con F # 4.0, que se acaba de lanzar.