==> Это не совсем так. Например, сборка проекта установки на сервере сборки потребует установки Visual studio !!

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

Я думаю о ночных сборках и т. Д., Но не могу ли я использовать запланированное событие, использующее встроенную в VS опцию сборки из командной строки? Есть ли лучшие инструменты там?

Ответы на вопрос(10)

ачните с открытия командной строки Visual Studio и запускаmsbuild /?, Просто прочитайте справку один раз, а потом решите, хотите ли вы узнать больше деталей.

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

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

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

<PropertyGroup>
   <PropertyKey>value</PropertyKey>
</PropertyGroup>
<ItemGroup>
   <ItemListKey>List values<ItemListKey>
</ItemGroup>
<Task Source="" Target="" />
    Besides using for build, I successfully used MSBuild to create a module that manages
    configuration files such as web.config and foo.exe.config files. 
    it is a hybrid module that consists of .net console app, MSBuild script and batch file.
    what this module does is that during a project upgrade, it will create a XML transform       
    template with connection strings, endpoints and appSettings from old configuration
    files. 
    after the project has been upgraded, the module will transform newly deployed  
    configuration
    files without affecting any new entries. if you have dozens of configuration files this  
    is very effective. 

кто пишет программное обеспечение .NET. Причина, по которой сборочный сервер для приложений .NET больше не требует установки Visual Studio (как упоминал Эндрю Бернс), заключается в том, что MSBuild теперь является частью .NET Framework.

Знание MSBuild даст вам значительную гибкость в выборе технологий, которые вы используете для реализации непрерывной интеграции. Поскольку я потратил время на изучение MSBuild, мне удалось без особых затруднений изменить систему CI, которую одна из наших команд использовала с CruiseControl.NET на TeamCity. Эти CI-серверы, или что-то вроде FinalBuilder (с которым я не знаком), являются лучшими вариантами для выполнения ночных сборок, чем запланированная задача. Изучение способов реализации пользовательских задач MSBuild даст вам еще большую гибкость в реализации пользовательских сборок. Jivko Petiov перечислил ряд задач, которые MSBuild облегчает. В случае развертывания и настройки базы данных я написал сценарии, которые делают это в MSBuild, и это значительно облегчает процесс разработки и тестирования.

Если Visual Studio Team System находится в будущем, приложения, созданные с использованием MSBuild, будут намного легче перемещать в эту среду, чем приложения, созданные с помощью альтернативных средств.

Есть много ресурсов, которые помогут вам начать работу с MSBuild. Я бы начал сВнутри Microsoft Build Engine, У одного из соавторов также есть тонна материала в сети, в том числеэтот сайтипроект на CodePlex.

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

Автоматизированное создание проектов становится все более необходимым по мере увеличения числа разработчиков, работающих над проектом. Для двух разработчиков очень легко написать несовместимый код, который будет ломаться при его объединении (представьте, что я вызываю функцию foo (int x), и вы меняете сигнатуру на foo (int x, int y): когда мы объедините наши базы кода, код сломается.

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

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

MSBuild встроен, так что если вы делаете что-то простое, то да, это рекомендуется.

Но для чего-то вроде ночных сборок я бы предложилFinalBuilder.

Посмотри этовопрос по инструментам управления сборкой / настройкой.

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

сборка сборки в режиме РЕЛИЗПодписание сборок со строгим именемвыполнение юнит-тестовизменение файлов xml / Web.config-s на летуизменение номера версии сборокпроверка FxCop / StyleCop и т.д ...автоматическое развертывание - создание баз данных SQL, веб-сайтов IIS, служб Windows и т. д.

вы можете использовать VS для управления проектами и файлами решений и просто передать SLN в MSBuild.

@kronoz Я бы сказал ДА. что если вы измените свои файлы csproj, добавив в них пользовательские этапы сборки, то эти шаги будут выполняться из VS или из MSBuild. Кроме того, если у вас когда-либо есть сервер сборки, вам не нужно устанавливать полную VS, только SDK для сборки ваших проектов.

==> Это не совсем так. Например, сборка проекта установки на сервере сборки потребует установки Visual studio !!


Я бы сказал ДА.
Особенность MSBuild в том, что если вы измените свои файлы csproj, добавив в них пользовательские этапы сборки, то эти шаги будут происходить из VS или из MSBuild. Кроме того, если у вас когда-либо есть сервер сборки, вам не нужно устанавливать полную VS, только SDK для сборки ваших проектов.

как ваш, когда у вас еще нет системы сборки, тогда да, MSBuild абсолютно стоит того. Вы можете не только использовать его для различных задач перед сборкой и после сборки (см. Ответ Джико Петиова), но вы также можете красиво интегрировать его в среду непрерывной интеграции (например, CruiseControl).

Один из сценариев, когда это может не стоить того, - это когда у вас уже есть автоматизированная / скриптовая система сборки. Например, я сам не занимал время с MSBuild, потому что я использовал NAnt для этой задачи еще до появления MSBuild ...

Ваш ответ на вопрос