c# .net assemblyinfo

c# - La cadena de la versión especificada no se ajusta al formato requerido-major[.minor[.build



.net assemblyinfo (3)

El valor máximo para cualquiera de las partes es 65534, como leíste here . Este es un límite que plantea el sistema operativo, por lo que ni siquiera es específico de .NET. Windows coloca los números de versión en dos enteros, que juntos forman cuatro cortos sin firmar.

Agregarle algunos metadatos (para la opción * supongo) hace que el valor máximo permitido UInt16.MaxValue - 1 = 65534 (Gracias a Gary Walker por darse cuenta):

Todos los componentes de la versión deben ser enteros mayores o iguales a 0. Los metadatos restringen los componentes mayor, menor, compilación y revisión de un ensamblaje a un valor máximo de UInt16.MaxValue - 1 . Si un componente supera este valor, se produce un error de compilación.

Su 201606071 supera este límite.

Quiero adjuntar nuestra versión de la aplicación con el número de compilación. Por ejemplo, 1.3.0.201606071 .

Al configurar esto en AssemblyInfo, recibo el siguiente error de compilación:

Error CS7034 La cadena de versión especificada no cumple con el formato requerido - major [.minor [.build [.revision]]]

Información de montaje:

[assembly:System.Reflection.AssemblyFileVersionAttribute("1.0.0.201606071")] [assembly:System.Reflection.AssemblyVersionAttribute("1.0.0.201606071")] [assembly:System.Reflection.AssemblyInformationalVersionAttribute("1.0.0.201606071")]

¿Por qué sucedería esto?


Esta limitación solo se aplica a la versión de Ensamblaje y Archivo, por lo tanto, si está utilizando .Net Core 2.x, puede evitar esta limitación configurando una versión separada de cada uno en el csproj.

</PropertyGroup> <VersionPrefix>1.1.1.9000001</VersionPrefix> <VersionSuffix>$(VersionSuffix)</VersionSuffix> <AssemblyVersion>1.1.1.0</AssemblyVersion> <FileVersion>1.1.1.0</FileVersion> </PropertyGroup>


here ! Eso es una lástima.