Pregunta

He definido una construcción en TFS 2010 con una ubicación de caída como "\ servidor \ builddrop \".Cuando coloque la construcción, deja caer la construcción en algo como "\ servidor \ builddrop \ mybuild \ mybuild_20120309.1".

Me gustaría poder definir una construcción que caerá en una ubicación exacta que nunca cambie. ¿Puedo cambiar la definición de compilación para caer siempre en una ubicación como esta?

1) \ servidor \ builddrop \ mybuild \

o
2) \ servidor \ builddrop \ mybuild \ último \

¿Fue útil?

Solución

Si la gente quiere saber dónde encontrar las últimas compilaciones, creo que es mejor educarlas en el lugar donde es la ubicación de la caída y cuáles son los nombres de compilación, por lo que pueden determinar fácilmente cuál es la última. Si desea copiar la salida de la ubicación de la caída en el mismo directorio, tendrá que crear una plantilla personalizada (modificando la plantilla predeterminada) que ejecute su compilación. Durante mi compilación, después de que los archivos se copien en la ubicación de la caída, ejecuto un script para copiar los archivos en la ubicación de la caída a un directorio "Último" común. Sin embargo, se puede convertir fácilmente en problemas en los que las personas acceden a los archivos en el directorio "Último" mientras ejecuta una compilación, por lo que su compilación falla porque no puede sobrescribir esos archivos.

Si desea determinar la ubicación de la caída de la última versión exitosa, también puede hacerlo programáticamente. A continuación se muestra un fragmento de una actividad personalizada que escribí para hacer solo eso:

        string tfsUri = "http://pathToTfsServer:8080/tfs";
        string projectName = "MyTfsProject";
        string buildDefinition = "MyTfsBuildDefinitionName";

        // connect to the Project and query the builds of the BuildDefinition
        var tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri(tfsUri), new UICredentialsProvider());
        tfs.EnsureAuthenticated();
        var buildServer = tfs.GetService<IBuildServer>();
        var buildDetails = buildServer.QueryBuilds(projectName, buildDefinition);

        // sort builds based on start time
        Array.Sort(buildDetails, delegate(IBuildDetail build1, IBuildDetail build2)
        {
            return build1.StartTime.CompareTo(build2.StartTime);
        });

        // return only the last successful build that currently exists
        for (int i = buildDetails.Length - 1; i >= 0; i--)
        {
            if (buildDetails[i].Status == BuildStatus.Succeeded && buildDetails[i].IsDeleted == false)
                return buildDetails[i];
        }

Si está buscando personalizando el equipo construido 2010, sugiero leer tutoriales de Ewald Hoffman sobre el sujeto .

Otros consejos

Cuando se dispara una compilación, se creará una carpeta en la ubicación de caída especificada como

  • mybuild_20120309.1
  • mybuild_20120309.2
  • mybuild_20120310.1

    La convención de nomenclatura de la carpeta es "Build Definition"_"yyyymmdd"."build number" El número de compilación es el número de compilaciones proporcionadas en un día.Entonces, cuando active una compilación, puede ir a la ubicación de la caída de compilación y simplemente vaya a la carpeta más reciente (según la convención de nombres) y obtenga la configuración.

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