2011-02-02 13 views
8

Sto utilizzando la destinazione MSBuild _WPPCopyWebApplication in uno script build-and-deploy CruiseControl.net, ma sembra che questo target pulisca i file che non fanno parte del progetto prima della distribuzione, in particolare , File App_Data (che per questa app includono immagini caricate, ecc.).Come arrestare MSBuild _WPPCopyWebApplication target cleaning App_Data folder

Da Microsoft.Web.Publishing.targets;

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

Come posso smettere di fare CleanWebProjectOutputDir, dato questo obiettivo;

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

Si tratta di una soluzione VS2010, sebbene costruita in CC.Net; Sono a conoscenza di MSDeploy, ma non ho ancora capito da che parte, quindi preferirei restare con MSBuild/_WPPCopyWebApplication per ora.

EDIT:

ho ulteriormente ristretto questa a questa parte del target;

<!-- 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)" /> 

Quindi credo che la domanda diventa, come posso sopprimere questo compito Elimina specifica, o almeno aggiungo App_Data ** alle esclusioni _AllExtraFilesUnderProjectOuputFolder?

risposta

9

Aggiungi CleanWebProjectOutputDir=False alle proprietà:

<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

Mio Dio, ho cercato per questa proprietà per secoli, si fa a sapere dove posso trovare l'elenco proprietà MSBuild? –