2010-08-11 9 views

Respuesta

4

Los AssemblyInfo.cs - archivo no lo existe si está deveolping software nativo con C/C++, por lo tanto ... esta respuesta es inútil para muchos desarrolladores, uno podría echarle un vistazo al http://autobuildversion.codeplex.com ... pero esta extensión no parece funcionar con VS2010, aunque el sitio web dice lo contrario: puede que sea bueno ir si está usando versiones anteriores. versiones de VS, aunque

+0

para C++ nativo echa un vistazo a esta serie de publicaciones en el blog: 1. http://www.zachburlingame.com/2011/02/mapping-binaries-in-the-field-to-source-code-in-the-repository/ 2. http://www.zachburlingame.com/2011/02/versioning-a-native-cc-binary-with-visual-studio/ 3. http://www.zachburlingame.com/2011/02/integrating- the-mercurial-revision-into-the-version-automatically/ – oob

+0

El OP solicitó compatibilidad con VS2010, este complemento no funciona para 2010, aunque detalla una solución temporal (lo intentó y no funciona). – garfbradaz

+0

Tu lectura comprensiva no es tan bien desarrollada, ¿verdad? – specializt

16

Cambiar el AssemblyInfo.cs-File:

[assembly: AssemblyVersion("1.0.0.0")] 
[assembly: AssemblyFileVersion("1.0.0.0")] 

a

[assembly: AssemblyVersion("1.0.*")] 
//[assembly: AssemblyFileVersion("1.0.0.0")] 
+0

oh gracias Es perfecto – Sadegh

+0

El único problema es que el número sustituida por * no siempre se incrementa. –

+0

1.0. * Siempre se reemplaza por 1.0. {Date}. {Time] por lo que siempre debe incrementarse. – Floyd

1

Acabo de probar el método de autobuildincrement y tuve problemas con Visual Studio 2010, sin embargo, encontré una manera de hacerlo funcionar. Establezca "Incremento antes de compilación en falso. Luego, incluso en Visual Studio 2010, el archivo assempblyinfo.cs se actualizará después de cada compilación.

Tenga en cuenta que la información de ensamblaje de su dll no cambiará en su primera compilación, pero lo hará después eso.

+0

Supongo que está hablando de la herramienta de versión de compilación automática, pero no ha dejado esto claro http://autobuildversion.codeplex.com –

15

Como alguien menciona la 1.0. * siempre se sustituye con 1,0. {fecha}. {time] por lo que siempre debe ser se incrementará (uno habría pensado)

En VS2010 cambiar el AssemblyVersion a [assembly: AssemblyVersion ("1.0. *")] funciona, ten en cuenta que debes cerrar la solución/proyecto, volver a abrirlo luego vuelva a compilarlo (no compilación) para actualizar/cambiar los valores de compilación + revisión.

Parece que la fecha/hora se obtiene desde el momento en que se abre el proyecto, así que cerrar/volver a abrir para actualizar los valores de revisión/compilación, supongo que es útil si está cambiando varios bits dentro del proyecto en uno ir y no seguirá cambiando la AssemblyVersion posiblemente rompiendo otros bits.

To return the date from the build value: 
    DateAdd(DateInterval.Day, build, DateValue("01/01/2000")) 
    ' build is the number of days from 1/1/2000 
To return the time from the revision value: 
    Date.FromOADate(revision/1800/24) 
    ' depending on your timezone you may have DST/BST issue with resulting time 
+6

+1 por mencionar que necesita cerrar y volver a abrir la solución, hace que los nuevos usuarios se pregunten por qué su compilación los números no cambian – Dav

+0

La respuesta dada no funciona para Visual Studio 2010, que es lo que solicitó el OP. – garfbradaz

1
DateTime.Parse(@"1/1/2000") 
    .AddDays(FileVersionInfo.GetVersionInfo(
     System.Reflection.Assembly.GetEntryAssembly().Location 
    ).FileBuildPart) 
    .AddSeconds(FileVersionInfo.GetVersionInfo(
     System.Reflection.Assembly.GetEntryAssembly().Location 
    ).FilePrivatePart * 2) 
Cuestiones relacionadas