Цель MSBuild, которая всегда запускается при нажатии кнопки построить в VS2013

#msbuild #visual-studio-2013

#msbuild #visual-studio-2013

Вопрос:

Я хочу запускать цель всякий раз, когда вы нажимаете кнопку построить для проекта в VS2013. Я попробовал несколько способов, включая изменение параметров проекта по умолчанию на что-то пользовательское, а затем заставил пользовательскую цель вызвать мою цель и затем выполнить сборку. Однако проблема в том, что это работает только один раз. Если я запущу его снова, похоже, что он ничего не запускает.

Есть ли какой-либо способ сделать это?

Комментарии:

1. На каком языке? Например, для c я сомневаюсь, что это возможно: кажется, msbuild даже не вызывается, когда все файлы обновлены, не говоря уже о том, что вы можете запустить цель. Если вам не нужны вещи, специфичные для проекта, вы могли бы написать расширение, которое подключается к событию щелчка сборки.

2. Это проект веб-приложения. Я ответил ниже.

Ответ №1:

Я придумал решение. Моя основная проблема заключалась в том, что VS2013 больше не проверял, не изменились ли файлы. Мне нужно было добавить это в файл моего проекта.

    <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
  

В моем конкретном случае это был проект webapp. Вероятно, есть более простые способы, но в итоге я пришел к следующему.

Я меняю значения по умолчанию в теге на «CustomBuild»

Затем я создал цель, подобную этой.

   <Target Name="CustomBuild">
    <CallTarget Targets="<my custom target>" />
    <CallTarget Targets="Build" />
  </Target>
  

Теперь каждый раз, когда я нажимаю «Построить», она будет запускаться <моя пользовательская цель>

Комментарии:

1. Поскольку мне пришлось ее искать… <DisableFastUpToDateCheck> должен быть в <PropertyGroup>

Ответ №2:

В Visual Studio откройте свойства проекта, перейдите в раздел «События сборки» и задайте команду «Четность после сборки», а затем выберите «Всегда» из выпадающего списка «Запустить событие после сборки».

введите описание изображения здесь