Pregunta

Desbordamiento de la pila tiene una subversión número de versión en la parte inferior:

svn revision:679

Quiero usar tales automático de control de versiones con mi .NET Web Site/Application, Windows Forms, WPD proyectos/soluciones.

¿Cómo puedo aplicar esto?

¿Fue útil?

Solución

Parece que Jeff es el uso de CruiseControl.NET basado en algunos hojear a través de los podcast de las transcripciones.Esto parece haber automatizado de las capacidades de implementación de control de código fuente para la producción.Podría ser esta donde la inserción está sucediendo?

Otros consejos

Esto lo hacemos con xUnit.net para nuestro automatizado construye.Utilizamos CruiseControl.net (y están tratando de salir de TeamCity).La tarea de MSBuild que podemos ejecutar para la integración continua cambia de forma automática el número de compilación para nosotros, por lo que la resultante construir archivo ZIP que contiene un correctamente versionada conjunto de archivos Dll y Exe.

Nuestro MSBuild archivo contiene un UsingTask referencia a una DLL que hace de la expresión regular reemplazos:(puede usar este archivo DLL, como es cubierto por el MS-PL licencia así)

  <UsingTask
     AssemblyFile="3rdParty\CodePlex.MSBuildTasks.dll"
     TaskName="CodePlex.MSBuildTasks.RegexReplace"/>

Siguiente, se extrae el número de compilación, que es proporcionada automáticamente por el sistema de CI.También se puede obtener de su proveedor de control de origen para proporcionar el origen de revisión número si usted quiere, pero hemos encontrado la build # en el sistema de CI era más útil, ya que no sólo se pueden ver los resultados de la integración por el CI número de compilación, que también proporciona un enlace de vuelta a el conjunto de cambios(s) que fueron incluidos en la compilación.

 <!-- Cascading attempts to find a build number -->

 <PropertyGroup Condition="'$(BuildNumber)' == ''">
   <BuildNumber>$(BUILD_NUMBER)</BuildNumber>
 </PropertyGroup>
 <PropertyGroup Condition="'$(BuildNumber)' == ''">
   <BuildNumber>$(ccnetlabel)</BuildNumber>
 </PropertyGroup>
 <PropertyGroup Condition="'$(BuildNumber)' == ''">
   <BuildNumber>0</BuildNumber>
 </PropertyGroup>

(Tratamos de BUILD_NUMBER, que es de TeamCity, entonces ccnetlabel, que es de CC.net y si no está presente, la opción predeterminada es 0, por lo que se puede probar la generación automática de secuencia de comandos de forma manual).

A continuación, tenemos una tarea que establece el número de compilación en un GlobalAssemblyInfo.cs archivo que nos enlace, en todos nuestros proyectos:

 <Target Name="SetVersionNumber">
   <RegexReplace
       Pattern='AssemblyVersion\("(\d+\.\d+\.\d+)\.\d+"\)'
       Replacement='AssemblyVersion("$1.$(BuildNumber)")'
       Files='GlobalAssemblyInfo.cs'/>
   <Exec Command="attrib -r xunit.installer\App.manifest"/>
 </Target>

Esta a encontrar el atributo AssemblyVersion, y sustituye a la una.b.c.d número de versión con un.b.c.Número de compilación.Nosotros generalmente se aleja de la fuente facturado en el árbol con las tres primeras partes de el generador de número fijo, y el cuarto en cero (f.e., hoy en día es 1.0.2.0).

En su proceso de construcción, asegúrese de que el SetVersionNumber tarea precede a su tarea de compilación.Al final, hacemos uso de nuestro Zip tarea a la cremallera de los resultados de generación de manera que tenemos una historia de los archivos binarios para cada generación automática.

Usted puede hacer esto mediante la adición de los siguientes en cualquier parte del código

$Id:$

Así, por ejemplo, @Jeff hizo:

<div id="svnrevision">svn revision: $Id:$</div>

y cuando está activada en el servidor reemplazado $Id:$ con el actual número de revisión.Yo también encontrado esta referencia.

También hay $Fecha:$, $Rev:$, $Revisión:$

Si estás usando ASP.Net MVC (como StackOverflow hace), he escrito un fácil de seguir 3 pasos de la guía sobre cómo obtener automáticamente y mostrará la última revisión SVN.La guía fue inspirado por el pensamiento de mí mismo acerca de esta cuestión!:o)

@Globo Si usted está utilizando TortoiseSVN, puede utilizar el empaquetado SubWCRev programa.Consulta una copia de trabajo y le dice el mayor número de revisión.Sin duda, este parece ser un cliente enfoque a un problema de servidor, pero ya que es un buen programa de línea de comandos, usted debería ser capaz de captar su salida para su uso con bastante facilidad.

$rev y otros, como lo son las revisiones de los archivos individuales, por lo que no van a cambiar a menos que los cambios en el archivo.El número de la página web es (lo más probable, estoy asumiendo aquí) el svn número de revisión de todo el proyecto.Que es diferente de las revisiones de archivo, que otros se han venido señalando.

En este caso supongo que CCNET está tirando el número de revisión del proyecto y la reescritura de una parte de la página web con ese número.Cualquier CI solución debe ser capaz de hacer esto, esta configurado a mí mismo con CCNET y Teamcity (aunque no de las páginas web, pero automático de control de versiones de implementación/asamblea versiones).

Para hacer esto, utilice un CI solución que admite, o el uso de su proceso de construcción (MSbuild/Nant) para almacenar esa versión y la escritura a los archivos antes de la "implementación" de ella.

Para agregar a @BradWilson la respuesta: "También se puede obtener de su proveedor de control de origen para proporcionar el origen de revisión número si usted quiere"

Para conectarse a la Subversión y de MSBuild:MSBuild De La Comunidad De Las Tareas Del Proyecto

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top