Примечание. Следующее относится к VS2010 и публикации проектов веб-приложений с методом публикации «Web Deploy», выбранным в диалоговом окне «Build / Publish {projectname}».
Жюльен Хорау прав в том, что «Опубликовать» НЕ является именем цели msbuild, вызванной в вышеупомянутом случае; фактическое имя цели: "MSDeployPublish" .
Следовательно, вы должны определить элемент "Target" , чей атрибут "AfterTarget" имеет значение "MSDeployPublish" - атрибут "Name" значение не имеет значения (если оно уникально среди целевых имен).
Вот как это сделать:
- Откройте файл проекта (например, * .csproj) в текстовом / XML-редакторе и непосредственно перед закрывающим тегом
</Project>
добавьте элемент <Target Name="CustomPostPublishAction" AfterTargets="MSDeployPublish">
; выберите имя по вашему выбору для "CustomPostPublishAction".
- Добавить так называемый дочерний элемент Task, который выполняет желаемое действие; например, чтобы добавить команду для передачи в cmd.exe, используйте элемент
<Exec Command="..." />
.
Пример: * * тысяча двадцать-восемь
<Target Name="CustomPostPublishActions" AfterTargets="MSDeployPublish" >
<Exec Command="echo Post-PUBLISH event: Active configuration is: $(ConfigurationName)" />
</Target>
Примечание:
- В строках команд используйте ссылки на сущности XML (?) Вместо символов, которые могут нарушить синтаксический анализ XML, например, «& gt» вместо «<». </li>
- Для документации по элементу
<Target>
в целом см. http://msdn.microsoft.com/en-us/library/t50z2hka.aspx
- Ссылка на элементы задачи здесь: http://msdn.microsoft.com/en-us/library/7z253716.aspx
- Как правило, если вам нужно определить имя цели msbuild.exe, которая фактически вызывается Visual Studio 2010, выполните следующие действия:
- Перейдите в Инструменты / Параметры ..., Проект и решения / Построить и запустить, выберите «Подробно» (или, для более подробной информации, «Диагностика») из выпадающего списка, помеченного «Детализация выходных данных сборки проекта MSBuild».
- После запуска действия сборки / публикации, например, Построение / публикация, проверьте окно «Вывод» на предмет наличия last вхождения строки «Готово создание цели», чтобы определить цель верхнего уровня, которая была вызвана.