В чем разница между использованием 'devenv' и 'msbuild' в сборках CruiseControl.NET? - PullRequest
11 голосов
/ 13 февраля 2011

Какая основная разница между использованием тега и тега в CruiseControl.NET?

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

Ответы [ 3 ]

19 голосов
/ 15 февраля 2011

В основном devenv (Visual Studio) упаковывает MSBuild и добавляет множество специфических свойств Visual Studio.

Для использования devenv на вашем компьютере должна быть установлена ​​Visual Studio. Для использования MSBuild вам нужен только .NET Framework.

7 голосов
/ 15 февраля 2011

Для нас основным отличием является то, что devenv будет обрабатывать проекты установки (* .vdproj), а msbuild - нет.Если я правильно помню, msbuild гораздо менее простителен, когда дело доходит до поиска ссылочных сборок (особенно, если пути немного отклонены).

5 голосов
/ 15 февраля 2011

Одна из вещей, которые мы обнаружили при переходе на TFS (который использует msbuild, по крайней мере, так, как мы его настроили) из VSS / CruiseControl.NET (который, я предполагаю, использовал devenv в нашей конфигурации), заключается в том, что иногда ProjectGuids выйти из синхронизации.

Итак, проект A ссылается на проект B, а файл проекта или решения для проекта A имеет ProjectGuid и путь к файлу проекта Project B. Однако по какой-либо причине ProjectGuid в Project B изменился, и проект или файл Project Project не были обновлены, чтобы отразить это.

Devenv хорош, потому что он либо просто использует путь к файлу проекта Project B, либо возвращается к нему. Msbuild, однако, останавливается на этом этапе, потому что если ProjectGuids не совпадает, это не нужно. На данный момент вы можете исправить это в Visual Studio (я думаю удаление и повторное добавление проекта работает) или вручную через Блокнот или что-то еще.

Я оставлю на ваше усмотрение решать, что лучше (строгое соблюдение ProjectGuid или снисходительность, когда известен путь к проекту)

...