2009-06-22 5 views

Répondre

17

Vous pouvez créer une cible pour vérifier que tous les fichiers de contenu sont physiquement situés sur le disque et générer une erreur si ce n'est pas le cas. Voici un tel objectif

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

Vous pouvez vous assurer que cet objectif est exécuté à chaque fois en l'ajoutant à l'InitialTargets attribut sur l'élément du projet. Par exemple

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

Sayed Ibrahim Hashimi

Mon livre: Inside the Microsoft Build Engine : Using MSBuild and Team Foundation Build

0

Vous pouvez également ajouter la condition d'erreur dans BeforeBuild cible disponible en .csproj comme ceci:

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

BeforeBuild sera toujours exécuté lors de la construction un projet et vous n'avez donc pas besoin d'ajouter l'attribut target InitialTargets de la propriété Project.

Questions connexes