Автономная система сборки для проектов Visual Studio - PullRequest
5 голосов
/ 27 октября 2009

Мы используем Make для компиляции нашего продукта, который включает в себя C, C ++, Java и кучу других фрагментов. В максимально возможной степени у нас есть все инструменты, необходимые для компиляции всего этого, проверенного в управлении исходным кодом, для устранения локальных зависимостей и обеспечения согласованности между компьютерами разработки.

Недавно мы добавили некоторые компоненты, написанные на C # с использованием Visual Studio, и хотели бы использовать аналогичный подход с решениями Visual Studio. Обстреливать devenv не очень хороший вариант. Прямой вызов csc.exe (как я делал до использования Nant ) потребовал бы отслеживания зависимостей файлов в сценарии сборки, что я предпочел бы просто позволить решению Visual Studio.

MSBuild кажется хорошей ставкой, хотя расположение по умолчанию в %windir%\Microsoft.NET\Framework\[version]\ заставляет меня беспокоиться об изменчивости между машинами, как с [версией] в пути, так и с тем, что вы увидите оба Каталоги "Framework" и "Framework64". Я не возражаю против требования, чтобы у всех разработчиков была установлена ​​какая-либо версия .NET Framework, но я действительно беспокоюсь, что ваш v3.5 может не совпадать с моим.

У кого-нибудь есть решение, которое им нравится? Пробовал что-нибудь, что тебе действительно не понравилось?

Ответы [ 4 ]

6 голосов
/ 27 октября 2009

MSBuild - это опция с самым низким трением. Разные FX-версии не так уж важны во время сборки - если вы используете что-то важное из FX-версии выше установленной, она не будет собираться. Последнее место, где я был, мы построили огромную многокомпонентную систему сборки с базой NAnt, и она подключилась к MSBuild с помощью задач MSBuild от NAnt. MSBuild сам по себе хорош, если вы просто делаете MS-вещи, но у нас было множество вещей, которые MSBuild изначально не поддерживал, следовательно, оболочка NAnt.

1 голос
/ 27 октября 2009

Я согласен со всеми остальными. Чтобы упростить процесс, просто сделайте vsvars.bat (командный файл, который является командной строкой Visual Studio) частью вашего скрипта сборки, и тогда MSBuild просто будет работать.

0 голосов
/ 27 октября 2009

Мы используем Nant для управления msbuild. Если вы беспокоитесь о различных версиях платформы, в частности о пакетах обновления, используйте FxCop, чтобы убедиться, что вы не позволяете неожиданным зависимостям заскочить. Подробности в этом ответе .

0 голосов
/ 27 октября 2009

MSBuild - правильный инструмент для этой работы. Просто сопоставьте версию вашей фреймворка с версией фреймворка, поставляемой с Visual Studio, которую вы используете.

32-разрядные и 64-разрядные значения не должны иметь значения, я не думаю - я уверен, что 32-разрядные и 64-разрядные версии Csc.exe могут кросс-компилироваться на другую платформу. Файл проекта MSBuild (XML-файл *. * Proj) должен содержать все, что нужно MSBuild для создания приложения.

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