Как остановить MSBuild _WPPCopyWebApplication Целевая очистка папки App_Data - PullRequest
8 голосов
/ 02 февраля 2011

Я использую цель _WPPCopyWebApplication MSBuild в сценарии сборки и развертывания CruiseControl.net, но похоже, что эта цель очищает файлы, не являющиеся частью проекта перед развертыванием, в частности, файлы App_Data (которые для этого приложения,включая загруженные изображения и т. д.).

От Microsoft.Web.Publishing.targets;

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

Как мне остановить это, выполнив CleanWebProjectOutputDir с учетом этой цели;

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

Это решение VS2010, хотя и построенное под CC.Net;Я знаю о MSDeploy, но пока еще не совсем разбираюсь в этом, поэтому предпочел бы сейчас придерживаться MSBuild / _WPPCopyWebApplication.

РЕДАКТИРОВАТЬ:

Я еще больше сузилсяэто к этой части цели;

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

Итак, я думаю, возникает вопрос, как я могу подавить эту конкретную задачу удаления или, по крайней мере, добавить App_Data ** к исключениям _AllExtraFilesUnderProjectOuputFolder?

1 Ответ

9 голосов
/ 25 мая 2011

Добавить CleanWebProjectOutputDir=False к вашей недвижимости:

<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>
...