2010-02-24 14 views
21

Necesito establecer un número de versión para ser utilizado en el atributo AssemblyVersion por varios proyectos relacionados.Constantes globales en F # - cómo

En C# utilizo el siguiente

public class Constants { 
    public const string Version = "1.2.3.4"; 
} 

entonces se puede utilizar como sigue:

[assembly:AssemblyVersion(Constants.Version)] 

Lo que sería el constructo equivalente en F #. Todos mis intentos de llegar a un enlace que pueda ser aceptado como un argumento de atributo no funcionó.

Respuesta

34

utilizar el atributo Literal:

[<Literal>] 
let version = "1.2.3.4" 

[<assembly:AssemblyVersion(version)>] 
8

Desde que entró en esta trampa a mí mismo que pensé en compartir para cualquier persona siguiente. Un 'Literal' requiere que la letra comience con una letra mayúscula. Esto te golpeará cuando trates de usar el literal en una construcción de coincidencia de patrones.

Referencia: Literal attribute not working

+0

Esto es cierto sólo si desea utilizar el literal en un contexto de coincidencia de patrones. – kvb

+0

La coincidencia de patrones es bastante central para F #, sin embargo. No trabajar en la coincidencia de patrones lo hace mucho menos útil. –

+3

Esta respuesta sería mejor como un comentario a la respuesta aceptada. – CaringDev

Cuestiones relacionadas