2012-06-11 10 views
5

Por lo tanto, Product Management ha decretado que nuestro software debe tener números de versión con 3 conjuntos de dígitos en lugar de los 4 habituales (por ejemplo 1.2.3 en lugar de 1.2.3.4)"Versión de archivo" en el valor de propiedades de Windows es FILEVERSION no "FileVersion"

Esto se realiza fácilmente en los cuadros de diálogo "Acerca de" y en otros lugares en la interfaz de usuario, pero tengo problemas con las propiedades de Windows.

Cuando cambio los valores en el bloque VERSIONINFO a:

FILEVERSION 1,2,3 
PRODUCTVERSION 1,2,3 

VALUE "FileVersion", "1.2.3" 
VALUE "ProductVersion", "1.2.3" 

termino con la siguiente en Windows 7 de Propiedades> pestaña Detalles para el exe:

versión

del archivo: 1.2.3.0 Producto versión: 1.2.3

Cambiar los valores para que sean diferentes indica que la "Versión de archivo" está tomada de FILEVERSION y siempre tiene el formato de un grupo de 4 dígitos, pero la "Versión del producto" está tomada de "ProductVersion".

¿Hay alguna manera de especificar que la "Versión del archivo" se debe tomar del valor de la cadena "FileVersion"? Si elimino el bloque FILEVERSION, acabo obteniendo una "Versión de archivo" de 0.0.0.0.

He reproducido este comportamiento en VS2010 mediante la creación de una aplicación de consola Win32 vacía, a continuación, añadir un recurso de versión por defecto:

VS_VERSION_INFO VERSIONINFO 
FILEVERSION 1,0,1 
PRODUCTVERSION 1,0,2 
FILEFLAGSMASK 0x3fL 
#ifdef _DEBUG 
FILEFLAGS 0x1L 
#else 
FILEFLAGS 0x0L 
#endif 
FILEOS 0x40004L 
FILETYPE 0x1L 
FILESUBTYPE 0x0L 
BEGIN 
    BLOCK "StringFileInfo" 
    BEGIN 
     BLOCK "080904b0" 
     BEGIN 
      VALUE "CompanyName", "TODO: <Company name>" 
      VALUE "FileDescription", "TODO: <File description>" 
      VALUE "FileVersion", "1.0.3" 
      VALUE "InternalName", "VersionT.exe" 
      VALUE "LegalCopyright", "Copyright (C) 2012" 
      VALUE "OriginalFilename", "VersionT.exe" 
      VALUE "ProductName", "TODO: <Product name>" 
      VALUE "ProductVersion", "1.0.4" 
     END 
    END 
    BLOCK "VarFileInfo" 
    BEGIN 
     VALUE "Translation", 0x809, 1200 
    END 
END 

resultante en la misma edición: properties http://media.use.com/images/s_1/4ba4e5b1b235179b1c9a.jpg

Esta imagen puede salir pequeño, así que solo confirmaré que dice Versión de archivo 1.0.1.0 Versión del producto 1.0.4

Antes de decir Product Ma Dado que esto es lo mejor que podemos hacer, ¿hay alguna forma de que Windows muestre el valor de la cadena "FileVersion"? He leído la documentación de VERSIONINFO en MSDN y no puedo ver ninguna marca que pueda configurar para hacer esto.

+0

Podría reemplazar el manejador de hojas de propiedades, supongo. Eso no sería sabio. –

+0

No, eso realmente no parece una solución viable. Gracias sin embargo. – Chris

Respuesta

1

Después de compilar e instalar this shell extension I found at CodeProject, parece que esto se debe a que Windows 7 muestra solo un subconjunto de las propiedades de versioninfo, y no hay nada que pueda hacer para cambiarlo. La cadena FileVersion está presente en el exe, simplemente no se muestra en el diálogo de propiedades predeterminado.

Cuestiones relacionadas