Construir es un éxito, pero los binarios están en ninguna parte ser encontrado. ¿Por qué?

StackOverflow https://stackoverflow.com/questions/890206

Pregunta

Recientemente he cambiado nuestro archivo de proyecto de construcción del equipo:

<SolutionToBuild Include="$(SolutionRoot)/OurSolution.sln">

a

<SolutionToBuild Include="$(SolutionRoot)/**/*.csproj">

Esto era necesario porque tenemos muchos proyectos que no están contenidas en el archivo de solución, y para nuestros propósitos no es factible sólo tiene que añadir los proyectos. Nos gustaría ser capaces de construir todos ellos de una sola vez. Así que encontramos una forma de construir de forma recursiva todos los proyectos.

Esto funciona muy bien y la acumulación se puede hacer sin errores. El único problema es que no hay binarios copiados en la carpeta de buzón! De hecho, no podemos encontrar en cualquier lugar! La construcción de la solución, los binarios se copian en una carpeta de binarios en el agente de compilación. Pero nada es allí cuando la construcción de los proyectos individuales.

Así que mi pregunta es, ¿dónde están? ¿Por qué el informe del equipo de generación que todo lo construido bien, pero entonces nada está ahí para ser copiado. Ni siquiera están en la carpeta normal de bin / Liberación bajo el directorio del proyecto.

¿Puede alguien ayudarme a entender? Siento que es probable que tenga algo que ver con la información contenida en el archivo de solución que no está presente en los archivos del proyecto, pero no puedo entenderlo.

¿Fue útil?

Solución

Creo que el elemento SolutionToBuild está vacía y nada se está construyendo. Usted puede verificar mediante

<Message Text="SolutionToBuild: $(SolutionToBuild)" Importance="high"/>

A continuación, mirar a través de su registro por esa declaración.

Es posible que desee revisar su enfoque en cualquier caso. Mejor sería crear un archivo de MSBuild a sí mismo, es decir BuildAll.proj. En ese archivo sólo tiene que utilizar el MSBuild tarea para construir todos los proyectos. A continuación, establezca el archivo a ser el SolutionToBuild. Esto le dará un poco más de flexibilidad cuando los proyectos están siendo construidos. Se pueden añadir pasos antes / después de la acumulación de esos proyectos o todos ellos.

Sayed Ibrahim Hashimi

My Book: Dentro de la fabricación de los motores de Microsoft: El uso de MSBuild y Team Foundation Build

Otros consejos

¿Has mirado a través de los registros TFSBuild. Si tiene TFS 2008, los registros tienen un montón de detalles crujientes que la TFS 2005 no tenía.

Otra idea es que el fuego de FileMon y ver los archivos creados por el servicio TFSBuild.

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