Я создаю сценарий сборки для автоматизации публикации наших веб-проектов на тестовой машине.
У меня есть сценарий msbuild, который успешно это делает, однако при запуске он выдает ошибку для каждого проектав решении о том, что «цель» _WPPCopyWebApplication «не существует в проекте».
Это правильно, потому что в каждом из моих файлов проекта я не импортирую соответствующий файл .targets, содержащий эту функцию.
Если я изменю каждый из файлов проекта для импорта файла .targets, то вместо ошибок я получу предупреждение для каждого проекта, в котором указано, что
MSBuild \ Microsoft \ VisualStudio \ v10.0 \Web \ Microsoft.Web.Publishing.targets "не может быть импортирован снова.
Он уже был импортирован в" MSBuild \ Microsoft \ VisualStudio \ v10.0 \ WebApplications \ Microsoft.WebApplication.targets (354,3) "Скорее всего, это ошибка разработки сборки. Этот последующий импорт будет проигнорирован.
В настоящий момент я импортирую relevant .targets файлы в верхней части моего сценария сборки:
<Project ToolsVersion="4.0"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project ="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets"/>
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets"/>
Есть ли способ предотвратить ошибку, заявляющую, что «_WPPCopyWebApplication» не присутствует в файле проекта, без генерации предупреждения о том, что естьдубликаты импорта после добавления его в каждый файл проекта?
Почему проектам необходимо импортировать файл целей, если он был импортирован в начало моего сценария сборки?
Редактировать:
В настоящее время я использую _WPPCopyWebApplication следующим образом:
<Target Name="Publish" >
<RemoveDir Directories="$(OutputFolder)" ContinueOnError="true" />
<MSBuild Projects="myproject.csproj;anotherproject.csproj" Targets="ResolveReferences;_WPPCopyWebApplication" Properties="WebProjectOutputDir=$(OutputFolder);OutDir=$(WebProjectOutputDir)\" />
</Target>
, который я получил от здесь и здесь :