Actualmente he configurado un proyecto de implementación web que compila código en la carpeta .\Release
. Después de la compilación, quiero copiar los archivos en otra máquina (ya que cualquiera que sea el directorio en el que cree se elimina y luego se vuelve a crear).Proyecto de implementación web - Copiar archivos después de la compilación
El ItemGroup para definir qué archivos copiar está configurado de la siguiente manera:
<ItemGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
<ReleaseFiles Include=".\Release\**\*" />
<OverrideFiles Include="..\website\App_Code\override\site.com\**\*" />
</ItemGroup>
'web' el código que se utiliza para múltiples sitios, por lo que hay varios proyectos de implementación web que existen dentro de la solución.
Entonces, tengo el objetivo AfterBuild para copiar los archivos:
<Target Name="AfterBuild" Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Copy SourceFiles="@(ReleaseFiles)" ContinueOnError="true" SkipUnchangedFiles="true" DestinationFiles="@(ReleaseFiles->'\\server\web\site.com\%(RecursiveDir)%(Filename)%(Extension)')" />
<Copy SourceFiles="@(OverrideFiles)" DestinationFiles="@(OverrideFiles->'\\server\web\site.com\%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
Sin embargo, los ReleaseFiles no se copian, lo que puede ser la causa de que? He tenido el error .\TempBuildDir\folder\subfolder - The process cannot access the file because it is being used by another process.
donde folder\subfolder
puede ser diferente cada vez, pero incluso cuando ese mensaje no aparece, los archivos aún no se copian.
El problema es que ha funcionado antes.
¿CreateItem pasa por ItemGroup o Target? – SamWM
Debería colocarlo en el destino 'AfterBuild', antes de las tareas de Copiar. –
Eso lo arregló para mí – SamWM