Tengo una situación en la que necesito copiar algunos archivos específicos en un script de MSBuild, pero pueden o no existir. Si no existen está bien, no los necesito entonces. Pero la tarea estándar <copy>
arroja un error si no puede encontrar todos y cada uno de los elementos en la lista ...MSBuild: ¿cómo copiar archivos que pueden existir o no?
22
A
Respuesta
39
Utilice existe la condición en la tarea Copiar.
<CreateItem Include="*.xml">
<Output ItemName="ItemsThatNeedToBeCopied" TaskParameter="Include"/>
</CreateItem>
<Copy SourceFiles="@(ItemsThatNeedToBeCopied)"
DestinationFolder="$(OutputDir)"
Condition="Exists('%(RootDir)%(Directory)%(Filename)%(Extension)')"/>
5
Lo más fácil sería utilizar la bandera 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>
Pero si algo más es incorrecto que no se note. Entonces la condición existe de la respuesta de Madgnome sería mejor.
0
Parece que puede marcar MySourceFiles como SkipUnchangedFiles = "true" y no copiará los archivos si ya existen.
Cuestiones relacionadas
- 1. MSBuild Copiar tarea sin copiar archivos la primera vez
- 2. php: empujando a una matriz que puede existir o no
- 3. ¿Pueden existir "referencias suaves" en Python?
- 4. Maven no copiar los archivos que no son Java
- 5. ¿Pueden existir espacios dentro de una extensión de archivo?
- 6. Copiar archivos o directorios recursivamente en Python
- 7. ¿Cómo se incluye un archivo de encabezado que puede existir o no?
- 8. ¿Pueden existir restricciones con el mismo nombre en un DB?
- 9. añadiendo a la propiedad JSON que puede o no existir todavía
- 10. Cómo usar boost :: bind con params que no se pueden copiar, por ejemplo boost :: promise?
- 11. Cómo copiar archivos de texto en C o C++?
- 12. Cómo copiar archivos en java
- 13. No se pueden copiar/mover archivos con espacio al final del nombre de archivo
- 14. Windows Lote mueve al directorio que puede no existir
- 15. Forma convencional de copiar archivos en Gradle: ¿usar Copiar tarea o copiar método?
- 16. Copiar archivos sin sobreescribir
- 17. Cómo incluir tipos de archivos excluidos en MSBuild
- 18. Cómo convertir existir Blob Blob a PageBlob
- 19. archivos de Submódulo no se pueden sacar
- 20. Cliente quiere "imágenes que no se pueden copiar" en el sitio web
- 21. Cómo decirle a 'PowerShell' Copiar-Elemento para copiar incondicionalmente archivos
- 22. ¿Cómo copio archivos en otro directorio usando MSBuild?
- 23. MSBUild: Copiar archivos con un nombre basado en el original (siguiendo un patrón)
- 24. Ventanas de consola que no se pueden eliminar cerrando o mediante el Administrador de tareas
- 25. Buscar y copiar archivos
- 26. subprocess.check_output() no parece existir (Python 2.6.5)
- 27. MSBuild y ZIP crear archivos
- 28. MSBuild: agregar/copiar carpetas vacías a través de la tarea Zip/Copiar
- 29. En Linux, ¿cómo copiar todos los archivos que no comienzan con una cadena dada?
- 30. Anular copiar o copiarWithZone: ¿o ambos?
Gracias! ¡Me había olvidado de estos! :) –
También vale la pena mencionar que en lugar de '% (RootDir)% (Directorio)% (Filename)% (Extension)', uno simplemente puede usar '% (FullPath)' (vea http://msdn.microsoft. com/en-us/library/ms171476.aspx) – AASoft
Tenga en cuenta que cuando utiliza transformación al proporcionar 'SourceFiles', debe proporcionar la misma transformación exacta en' Condition' – patryk