Преобразование Make-файлов в MsBuild - PullRequest
4 голосов
/ 28 августа 2010

Хотелось бы узнать, есть ли хорошие практики, хорошие инструменты для перевода нескольких проектов make-файлов Windows в какой-нибудь формат msbuid (VS 2010)?Если вы думаете, что «не очень хорошая идея сделать это с помощью инструмента, может быть, вы знаете что-то вроде анализатора зависимостей для составления контрольного списка?»

1 Ответ

2 голосов
/ 30 августа 2010

Недавно конвертировав старую сборку "make" в MSBuild, я бы сказал, что простого способа не существует. Конечно, прежняя сборка, над которой я работал, фактически вызывала msbuild для сборки .sln (я полагаю, что инженером по сборке, который поставил другой процесс на место, был Old-Skool, и он использовал набор инструментов, который ему больше подходил, чем .Net ).

Однако, что я заметил, так это то, что инструменты make (в частности, nmake.exe / build.exe) были основаны на каталогах - подкаталоги были «собраны» перед родительскими каталогами. Принимая во внимание, что это не так для msbuild - это решение и проект на основе.

Поместите свой код в проекты Visual Studio, живя в «плоской» структуре каталогов (если все проекты в качестве дочерних элементов одной папки «Исходный код» действительно сделают вашу жизнь проще в долгосрочной перспективе - не иметь проектов, которые живут несколько режиссеров "вниз по дереву"

Используйте несколько решений, чтобы разбить сборку на «ярусы» - закажите сборку slns в вспомогательный файл .bat - это поможет вам в долгосрочной перспективе преобразовать в TeamBuild

( мой ответ начал выходить из-под контроля - ваш вопрос напоминает мне об этой шутке с американцем, посещающим Ирландию, который заблудился, и он спрашивает местного «как вы добираетесь до Киларни?», И местного отвечает: «Ну, я бы не начал отсюда». Можете ли вы рассказать немного подробнее о том, что вы на самом деле строите? Это код .Net? Я уверен, что есть множество советов, которые я и другие могли бы дать вам, но не знаю с чем вы работаете )

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