Visual Studio 2008: запуск пользовательской цели сборки через контекстное меню проекта / решения - без надстройки - PullRequest
4 голосов
/ 02 марта 2010

У меня есть пользовательская цель сборки в проекте Visual Studio 2008 c #. Есть ли простой способ добавить пункт контекстного меню в проект, чтобы пользовательская цель сборки могла быть выполнена через ide? Цель сборки не интегрирована в процесс сборки по умолчанию и должна запускаться вручную. Этот шаг должен быть простым для всех разработчиков и не должен заставлять их выполнять msbuild из командной строки.

Любой намек на простое, рабочее решение?

С уважением, Ахим

Ответы [ 5 ]

3 голосов
/ 08 марта 2010

Добавить новую конфигурацию в проект / решение. Затем закройте файл проекта и откройте его для редактирования в XML. Измените его атрибут DefaultTargets на «PickBuild» и добавьте следующую цель в конец файла:

<Target Name="PickBuild">
    <CallTarget Targets="Build" Condition=" '$(Configuration)' == 'Debug' "/>
    <CallTarget Targets="Build" Condition=" '$(Configuration)' == 'Release' "/>
    <CallTarget Targets="SpecialTarget" Condition=" '$(Configuration)' == 'NewConfiguration' "/>
</Target>

Теперь, чтобы выполнить специальную задачу, разработчику просто нужно переключить конфигурацию в Visual Studio и нажать кнопку build. И, как и требовалось, это находится в файле, поэтому будет работать на чьей-либо машине также

1 голос
/ 08 марта 2010

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

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

1 голос
/ 02 марта 2010

Если вам не нужна надстройка, у вас может быть макрос VS, который регистрирует команду (в контекстном меню элемента в обозревателе решений), которая запускает этот процесс сборки.

0 голосов
/ 08 марта 2010

В этом блоге Скотт Хансельман описывает, как создать в VS кнопку для вызова "msbuild / m"

http://www.hanselman.com/blog/CategoryView.aspx?category=MSBuild

Вы можете сделать то же самое, но вместо этого вы можете позвонить:

 msbuild /t:YourTarget

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

0 голосов
/ 02 марта 2010

Хотя он не содержится внутри Visual Studio, я просто создаю файлы .cmd. Внутри этого файла вы используете msbuild.exe для сборки проекта. Вы также можете указать свойства и другие параметры командной строки одновременно. Когда разработчику нужно запустить сборку, он просто дважды щелкает по правильному файлу .cmd.

...