У меня есть странная проблема с тем, как msbuild ведет себя с проектом развертывания веб-сайтов VS2008 и хотел бы знать, почему это кажется случайным образом неправильным.
Мне нужно удалить несколько файлов из папки развертывания, которая должна существовать только в моей среде разработки. Файлы были созданы веб-приложением во время dev/testing и не включены в проект/решение Visual Studio.
Конфигурация, которую я использую, выглядит следующим образом:
<!-- Partial extract from Microsoft Visual Studio 2008 Web Deployment Project -->
<ItemGroup>
<DeleteAfterBuild Include="$(OutputPath)data\errors\*.xml" /> <!-- Folder 1: 36 files -->
<DeleteAfterBuild Include="$(OutputPath)data\logos\*.*" /> <!-- Folder 2: 2 files -->
<DeleteAfterBuild Include="$(OutputPath)banners\*.*" /> <!-- Folder 3: 1 file -->
</ItemGroup>
<Target Name="AfterBuild">
<Message Text="------ AfterBuild process starting ------" Importance="high" />
<Delete Files="@(DeleteAfterBuild)">
<Output TaskParameter="DeletedFiles" PropertyName="deleted" />
</Delete>
<Message Text="DELETED FILES: $(deleted)" Importance="high" />
<Message Text="------ AfterBuild process complete ------" Importance="high" />
</Target>
Проблема заключается в том, что когда я делаю сборку/восстановление проекта веб-развертывания, он "иногда" удаляет все файлы, но в других случаях он ничего не удалит! Или он удалит только одну или две из трех папок в группе элементов DeleteAfterBuild. Кажется, что нет последовательности в том, когда процесс сборки решает удалить файлы или нет.
Когда я отредактировал конфигурацию, чтобы включить только папку 1 (например), она правильно удалит все файлы. Затем добавляя папки 2 и 3, он начинает удалять все файлы по мере необходимости. Затем, казалось бы, в случайные моменты, я перестрою проект, и он не удалит ни один из файлов!
Я попытался переместить эти элементы в группу элементов ExcludeFromBuild (вероятно, там, где она должна быть), но она дает мне тот же непредсказуемый результат.
Кто-нибудь испытал это? Я делаю что-то неправильно? Почему это происходит?