2011-02-02 17 views
8

Estoy utilizando el objetivo _WPPCopyWebApplication MSBuild en un script de construcción e implementación CruiseControl.net, pero parece que este objetivo limpia archivos que no forman parte del proyecto antes de la implementación, específicamente , Archivos App_Data (que para esta aplicación, incluyen imágenes cargadas, etc.).Cómo detener MSBuild _WPPCopyWebApplication limpieza de destino carpeta App_Data

De Microsoft.Web.Publishing.targets;

<OnBefore_WPPCopyWebApplication> 
    $(OnBefore_WPPCopyWebApplication); 
    CleanWebProjectOutputDir; 
    PipelineTransformPhase; 
</OnBefore_WPPCopyWebApplication> 

¿Cómo puedo detenerlo haciendo el CleanWebProjectOutputDir, teniendo en cuenta este objetivo;

<Target Name="Deploy" DependsOnTargets="Tests"> 
    <MSBuild Projects="$(TargetPath)Website.csproj" Properties="Configuration=Debug;WebProjectOutputDir=\\servername\share;Outdir=$(ProjectDir)bin\;" Targets="ResolveReferences;_WPPCopyWebApplication" /> 
</Target> 

Esto es de una solución VS2010, aunque construida bajo CC.Net; Soy consciente de MSDeploy, pero aún no me he dado cuenta, así que preferiría seguir con MSBuild/_WPPCopyWebApplication por ahora.

EDIT:

He reducido aún más esta a esta parte del objetivo;

<!-- In the case of the incremental Packaging/Publish, we need to find out the extra file and delee them--> 
<ItemGroup> 
    <_AllExtraFilesUnderProjectOuputFolder Include="$(WebProjectOutputDir)\**" /> 
    <_AllExtraFilesUnderProjectOuputFolder Remove="@(FilesForPackagingFromProject->'$(WebProjectOutputDir)\%(DestinationRelativePath)')" /> 
</ItemGroup> 
<!--Remove all extra files in the temp folder that's not in the @(FilesForPackagingFromProject--> 
<Delete Files="@(_AllExtraFilesUnderProjectOuputFolder)" /> 

Así que supongo que la pregunta es, ¿cómo puedo suprimir esta tarea de eliminación específica, o al menos añadir App_Data ** a las exclusiones _AllExtraFilesUnderProjectOuputFolder?

Respuesta

9

Añadir CleanWebProjectOutputDir=False a sus propiedades:

<Target Name="Deploy" DependsOnTargets="Tests"> 
    <MSBuild Projects="$(TargetPath)Website.csproj" Properties="Configuration=Debug;CleanWebProjectOutputDir=False;WebProjectOutputDir=\\servername\share;Outdir=$(ProjectDir)bin\;" Targets="ResolveReferences;_WPPCopyWebApplication" /> 
</Target> 
+1

Mi Dios, yo he estado buscando esta propiedad para las edades, ¿sabe dónde puedo encontrar una lista de propiedades msbuild? –

Cuestiones relacionadas