J'ai une situation où j'ai besoin de copier quelques fichiers spécifiques dans un script MSBuild, mais ils peuvent exister ou non. S'ils n'existent pas c'est bien, je n'en ai pas besoin alors. Mais la tâche standard <copy>
génère une erreur si elle ne trouve pas tous les éléments de la liste ...MSBuild - comment copier des fichiers qui peuvent exister ou non?
22
A
Répondre
39
Utiliser la Existe en tant que condition sur la tâche de copie.
<CreateItem Include="*.xml">
<Output ItemName="ItemsThatNeedToBeCopied" TaskParameter="Include"/>
</CreateItem>
<Copy SourceFiles="@(ItemsThatNeedToBeCopied)"
DestinationFolder="$(OutputDir)"
Condition="Exists('%(RootDir)%(Directory)%(Filename)%(Extension)')"/>
5
Le plus simple serait d'utiliser le drapeau ContinueOnError http://msdn.microsoft.com/en-us/library/7z253716.aspx
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<MySourceFiles Include="a.cs;b.cs;c.cs"/>
</ItemGroup>
<Target Name="CopyFiles">
<Copy
SourceFiles="@(MySourceFiles)"
DestinationFolder="c:\MyProject\Destination"
ContinueOnError="true"
/>
</Target>
</Project>
Mais si quelque chose d'autre est faux, vous ne le remarquez pas. Donc la condition existe de la réponse de madgnome serait mieux.
0
Il semble que vous pouvez marquer MySourceFiles comme SkipUnchangedFiles = "true" et qu'il ne copiera pas les fichiers s'ils existent déjà.
Questions connexes
- 1. php: pousser vers un tableau qui peut exister ou non
- 2. Comment puis-je copier des fichiers en tant qu'utilisateur différent de msbuild?
- 3. Comment copier des fichiers dans un autre répertoire en utilisant MSBuild?
- 4. Comment copier des fichiers avec Windows Batch?
- 5. Les projecteurs peuvent-ils "copier" des objets d'autres projecteurs?
- 6. MSBuild, propriétés et fichiers importés
- 7. Comment configurer le presse-papiers pour copier des fichiers?
- 8. compilez des fichiers non-source dans Xcode
- 9. MSBuild "Impossible de copier le fichier" dans l'environnement CI
- 10. Surveillance des fichiers non-pgp
- 11. Comment filtrer les fichiers qui peuvent être vus sur la boîte de dialogue de téléchargement?
- 12. Besoin du dernier événement d'un certain type où plusieurs événements peuvent exister pour cette date
- 13. Copier rapidement des fichiers à partir d'un lecteur réseau mappé
- 14. Programmer des fichiers par lots à copier la nuit
- 15. Comment détecter des fichiers nouveaux ou modifiés
- 16. encapsuler des énumérations ou non?
- 17. Copier des fichiers d'un projet à l'autre après la construction
- 18. Copier des fichiers dans la bibliothèque de documents dans SharePoint
- 19. Copier des fichiers avec un chemin d'accès large en C++
- 20. ressources AjaxControlToolkit fichiers non Copié vers la sortie dans MSBuild Script
- 21. LINQ to SQL: propriétés des propriétés qui peuvent être null
- 22. Comment créer un référentiel commun de fichiers MSBuild .proj?
- 23. Msbuild copier à plusieurs emplacements en fonction de la liste des paramètres de destination?
- 24. Copier des fichiers dans des répertoires comme spécifié dans une liste de fichiers avec python
- 25. en utilisant Visual Studio pour copier des fichiers?
- 26. Dépannage des échecs MSBuild
- 27. MSBuild: ajouter/copier des dossiers vides via une tâche Zip/Copy
- 28. Comment copier des liens symboliques en Perl?
- 29. Comment obtenir une liste des utilisateurs qui peuvent se connecter localement sur Windows?
- 30. fichiers Parsing qui utilisent des synonymes
Merci! J'avais oublié ça! :) –
Il vaut aussi la peine de mentionner qu'au lieu de '% (RootDir)% (Directory)% (Filename)% (Extension)', on peut simplement utiliser '% (FullPath)' (voir http://msdn.microsoft. com/fr-fr/library/ms171476.aspx) – AASoft
Notez que lorsque vous utilisez la transformation en fournissant 'SourceFiles', vous devez fournir exactement la même transformation dans' Condition' – patryk