Событие перед сборкой, запускаемое перед созданием любого проекта в решении - PullRequest
3 голосов
/ 11 августа 2011

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

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

Итак, что мне действительно нужно, так это способ сделать это до того, как действительно начнется строительство. Я слышал о макросах Visual Studio. Но это не то, что проверяется, поэтому я предпочел бы не использовать их (но если это мой единственный вариант, я бы их использовал).

Ответы [ 2 ]

1 голос
/ 15 августа 2011

Вы можете попробовать это: http://sedodream.com/2010/10/22/MSBuildExtendingTheSolutionBuild.aspx

К сожалению, он работает только при вызове из командной строки через MSBuild. Кажется, это недостаток проекта в том, что поведение отличается, и эти события не доступны через IDE.

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

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

0 голосов
/ 11 августа 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...