2010-11-02 9 views
1

Dans le cadre d'une génération automatique, j'efface un répertoire et copie les dernières versions des fichiers sources dans ce répertoire. Tout d'abord, je mis en place la liste des fichiers que je souhaite copier:Team Build 2008/MSBuild Erreur de lancement de tâche de copie lors de la tentative de copie de fichiers

<CreateItem 
     Include="\\BuildServer\Build_Temp\SomeRootDirectory\**\*"> 
     <Output 
      TaskParameter ="Include" 
      ItemName ="FilesToCopy"/> 
    </CreateItem> 

Et que mon système savoir où mon serveur QA est situé à:

<CreateProperty 
      Value="\\QAWebServer\Websites\MySite"> 
     <Output 
      TaskParameter="Value" 
      PropertyName ="MyDropLocation"/> 
    </CreateProperty> 

je supprimer ensuite et recréer mon répertoire sur le serveur de destination pour effacer tous les fichiers (ceci est une compilation de la terre brûlée pour s'assurer que nous ne laissons pas accidentellement des fichiers ne faisant pas partie du contrôle de la source dans notre répertoire web).

<RemoveDir Directories="\\QAWebServer\Websites\MySite" /> 
    <MakeDir Directories="\\QAWebServer\Websites\MySite" /> 

Enfin, j'exécuter une tâche de copie:

<Copy 
      SourceFiles="@(FilesToCopy)" 
      DestinationFiles="@(FilesToCopy->'$(MyDropLocation)\%(RecursiveDir)%(Filename)%(Extension)')" 
      OverwriteReadOnlyFiles="True"/> 

je puis obtenir l'erreur résultant car il tente de copier des fichiers. Fait intéressant, certains font et certains ne le font pas (dans ce cas, il ressemble presque exclusivement ceux de la racine du répertoire Je viens de créer ci-dessus):

C:\Build_Temp\QABuild\BuildType\TFSBuild.proj(690,3): error MSB3021: Unable to copy file "\\BuildServer\Build_Temp\SomeRootDirectory\Import.swf" to "\\QAWebServer\Websites\MySite\Import.swf". Access to the path '\\QAWebServer\Websites\MySite\Import.swf' is denied. 
    C:\Build_Temp\QABuild\BuildType\TFSBuild.proj(690,3): error MSB3021: Unable to copy file "\\BuildServer\Build_Temp\SomeRootDirectory\Incomplete.swf" to "\\QAWebServer\Websites\MySite\Incomplete.swf". Access to the path '\\QAWebServer\Websites\MySite\Incomplete.swf' is denied. 
    C:\Build_Temp\QABuild\BuildType\TFSBuild.proj(690,3): error MSB3021: Unable to copy file "\\BuildServer\Build_Temp\SomeRootDirectory\Index.html" to "\\QAWebServer\Websites\MySite\Index.html". Access to the path '\\QAWebServer\Websites\MySite\Index.html' is denied. 

J'ai des droits d'accès au système de fichiers vérifiais (Tout le monde a accès à create/modify/etc.), Et il n'y a aucun problème à ajouter les fichiers à la structure du sous-répertoire sur \ QAWebServer \ Websites \ MySite, juste (primarilly) à la racine.

+1

Une remarque: dans les versions récentes de MSBuild, vous n'avez pas besoin d'utiliser 'CreateProperty' plus - vous pouvez simplement écrire' PropertyGroup' pour le même résultat avec une syntaxe plus propre. –

Répondre

1

Nous avons finalement dû résoudre ce problème en passant à une tâche XCopy.

<Exec Command="xcopy /E /R /Y \\buildMachine\Build_Temp\BuildSource 
\\QAWebServer\Websites\MySite"/> 
Questions connexes