Pregunta

Estoy intentando configurar un archivo common.targets con algunos objetivos msbuild comunes que quiero usar en las compilaciones de mi equipo y, por lo tanto, importar en mis archivos TFSBuild.proj. Me pregunto cuál es la mejor manera de lograr esto? ¿Debo almacenar common.targets justo al lado de cada archivo TFSBuild.proj y, por lo tanto, tener duplicados del archivo de objetivos para cada equipo o hay alguna otra forma? Preferiría no colocar el archivo de objetivos en cada una de las máquinas de compilación.

¿Fue útil?

Solución

Team Build tiene una fase de arranque antes de que se invoque TFSBuild.proj en el que solo se descargue TFSBuild.proj y otros archivos en el mismo directorio del control de origen. Por lo tanto, si desea que su archivo de objetivos esté bajo el control de código fuente, debe colocarlo en la misma ubicación que TFSBuild.proj

Más detalles en esta respuesta

Nunca lo he intentado, pero es posible que pueda colocar el archivo de objetivos en un recurso compartido de red e importarlo mediante un recurso compartido unc. Algo como

<Import Project="\\anothermachine\share\something.targets"/>

Pero eso requeriría que la cuenta de compilación y todas las personas que ejecutan compilaciones de escritorio tengan acceso a ese recurso compartido de red.

Otros consejos

Póngalo en una ubicación común que le guste en el control de código fuente. Antes de usar los objetivos, obtenga un archivo TFSBuild.proj como este:

<PropertyGroup>
  <!--Path to the TFS Command Line (used for checkin and out)-->
  <TxTf>&quot;C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\tf&quot;</TxTf>

  <WorkingDirectory>C:\YourPathHere<WorkingDirectory>
  <CustomProjTFSDir>&quot;$/YourProj/YourCustomProjPath&quot;</CustomProjTFSDir>
</PropertyGroup>

<Exec WorkingDirectory="$(WorkingDirectory)"
      Command="$(TxTf) get $(CustomProjTFSDir)"/>

La clave para este trabajo es configurar un área de trabajo para el usuario del agente de compilación que apunta a tus cosas personalizadas. Este directorio NO debe estar en el mismo espacio que sus compilaciones normales.

Vaccano

El objetivo de un archivo .targets común es reducir la duplicación de sus scripts. Si tiene varias copias de este archivo bajo el control de código fuente, ¿qué sucede cuando necesita cambiarlas (para actualizar una ruta .exe tal vez)? Personalmente, prefiero una ubicación separada para los archivos comunes que cualquier / todos los demás scripts de compilación pueden hacer referencia. El único inconveniente de esto es que probablemente esté codificando la ruta de acceso a este archivo.

Puede almacenarlos junto con los objetivos de MS en $ Volume \ Archivos de programa \ MSBuild. La ventaja de hacer esto es que puede crear una ruta relativa utilizando los metadatos conocidos " $ (MSBuildExtensionsPath) \ Path \ To \ Your \ Targets "

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