2009-06-22 7 views
13

me he dado cuenta de que nuestro servidor de control de crucero no falla cuando la acumulación de archivos de contenido están desaparecidos.Cómo fallar un MSBuild cuando los archivos de contenido faltan

me gustaría dejar la acumulación cuando los archivos de javascript/gráficos, etc faltan. ¿Cómo puedo validar el archivo del proyecto con los archivos extraídos de svn?

Respuesta

17

Puede crear un objetivo de comprobar para asegurarse de que todos los archivos de contenido se encuentran físicamente en el disco y generar un error si este no es el caso. Aquí es un objetivo tal

<Target Name="ValidateContentFiles"> 
    <Error Condition="!Exists(%(Content.FullPath))" 
     Text="Missing Content file [%(Content.FullPath)]"/> 
</Target> 

Puede asegurarse de que este objetivo se ejecuta cada vez que añadiéndolo a las InitialTargets atribuyen en el elemento de proyecto. Por ejemplo

<Project InitialTargets="ValidateContentFiles" 
     ToolsVersion="3.5" DefaultTargets="Build" 
     xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 

Sayed Ibrahim Hashimi

Mi libro: Inside the Microsoft Build Engine : Using MSBuild and Team Foundation Build

0

También puede agregar la condición de error en BeforeBuild Objetivo disponible en .csproj así:

<Target Name="BeforeBuild"> 
<Error Condition="!Exists(%(Content.FullPath))" 
Text="Missing Content file [%(Content.FullPath)]"/> 
</Target> 

BeforeBuild siempre se ejecutará al construir un proyecto y, por lo tanto, no es necesario agregar el objetivo al atributo InitialTargets de la propiedad Proyecto.

Cuestiones relacionadas