Сведения о вопросе

NOTtoday

04:03, 24th August, 2020

Теги

Можно ли настроить VisualStudio 2008 для постоянной сборки проекта запуска?

Просмотров: 475   Ответов: 7

У меня есть решение с несколькими проектами, где у проекта запуска есть событие после сборки, которое выполняет все копирование проектов "plugin" и другие организационные задачи. После обновления решения с VS 2005 до VS 2008 создается впечатление, что событие post-build срабатывает только в том случае, если я изменяю проект запуска, что означает, что мои обновленные плагины не подключаются к текущему сеансу отладки. Это имеет смысл, но это похоже на изменение в поведении. Кто-нибудь еще замечает изменение в поведении в отношении того, какие проекты строятся?

Кто-нибудь знает о обходном пути, который я могу использовать, чтобы заставить проект запуска перестраиваться всякий раз, когда я нажимаю F5? Возможно, я настроил VS 2005, чтобы работать таким образом так давно, что я забыл все об этом ...



  Сведения об ответе

DO__IT

20:53, 6th August, 2020

Я думаю, что вам нужно реорганизовать свои обязанности. Каждый компонент должен отвечать сам за себя и, следовательно, копировать свое сгенерированное добро туда, куда ему нужно идти. Таким образом, это не имеет значения if/who/what/when/where был построен. Все, что обновляется, будет помещено в надлежащее место.


IMO другие предложения не имеют никакого значения, поскольку они будут обходить ум компилятора, чтобы знать, когда перестроение необходимо для основного проекта. И, следовательно, убивает любую экономию времени компиляции. Если ваши проекты "plugin" являются сборками (а не просто ссылками на проект из основного проекта), то вам не нужно перестраивать основной проект каждый раз, когда плагин перестраивается. Новый assembly будет выбран в процесс / отладчик без основного проекта, нуждающегося в перестроении.


  Сведения об ответе

VCe znayu

21:06, 1st October, 2020

Почему бы просто не добавить зависимость к проекту "startup" для каждого из плагинов? Это приведет к тому, что проект будет перестроен, если изменятся какие-либо другие события, и вам не придется связываться с другими событиями pre/post-build.


  Сведения об ответе

lesha

08:04, 4th August, 2020

Я не знаю, является ли это правильным способом сделать это, но вы можете добавить предварительно построенное событие в свой startup projcet (если он статичен), чтобы очистить проект, который заставит перестроиться.

что-то вроде:

devenv project.csproj /clean


  Сведения об ответе

$DOLLAR

11:43, 15th August, 2020

Это такая боль. Что нам действительно нужно, так это чтобы Microsoft позволила нам подключиться к событию сборки после решения. Вы можете сделать это через macros, но это слишком сложно.

Я предполагаю, что это проект C++, потому что у меня нет этой проблемы с C#.

Это мое решение, оно не элегантное, но оно работает:

  • Создайте новый проект, единственной целью которого является запуск сценария после сборки. Отметьте его как зависящий от каждого другого проекта в решении.
  • Добавьте фиктивный файл в этот проект под названием dummy.h или что-то еще.
  • Щелкните правой кнопкой мыши на dummy.h в решении Explorer и выберите Свойства.
  • Выберите "Пользовательский Шаг Сборки".
  • Для командной строки введите 'echo', а для выходных данных просто введите 'dummy' или что-то еще, что никогда не будет существовать.

Этот проект и, следовательно, сценарий после сборки теперь будут запускаться на каждой сборке.

Джон.


  Сведения об ответе

P_S_S

17:19, 27th August, 2020

У меня здесь та же проблема, и это VERY раздражает. Джон Ричардсон прав в том, что должно быть событие сборки после решения (и событие сборки до решения), которое применяется всякий раз, когда создается проект ANY в решении.

Я не думаю, что есть какой-либо хороший обходной путь, чтобы получить этот результат в текущем VS 2008 IDE.


  Сведения об ответе

COOL

19:07, 20th August, 2020

flipdoubt: это проекты, созданные изначально в 2008 году. Мое предложение, если он не работает C#, это посмотреть на вкладке События сборки и проверить настройку выпадающего списка "Run the post-build event:". Если он имеет значение "когда сборка обновляет выходные данные проекта", это может быть вашей проблемой, попробуйте установить значение "при успешной сборке".

Джон.


  Сведения об ответе

SSESION

02:19, 19th August, 2020

Начиная с предложения @lomaxx, я получил очень похожую настройку, добавив следующую строку в конце события post-build стартап-проекта:

"$(DevEnvDir)devenv.exe" "$(ProjectPath)" /clean

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

PS. Сначала я попытался выполнить предварительную сборку, как было предложено, но это не сработало (и я думаю, что это имеет смысл - если VS считает, что проект не нуждается в сборке, он не будет выполнять никаких событий для этого проекта).


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться