Много людей, плохо знакомых с CI (Непрерывная Интеграция), устанавливает VS (Visual Studio) на их сервере CI, "потому что это требуется, чтобы компилировать код". MSTest является общей ссылкой, поднятой здесь.
Почему я не должен устанавливать VS (или вообще говоря, никакое программное обеспечение не out-of-the-box) на моем сервере CI?
(Этот вопрос не задали прежде, по-видимому, таким образом, я добавляю его для ссылки. Если это уже существует, извините, я пропустил его, объединитесь. Если никакой ответ не предоставлен на этот вопрос в течение некоторого времени, я могу добавить тот сам),
Потому что вам не нужно . Лицензия Visual Studio довольно дорога, поэтому просто валять ее на сервере, где ее никто не использует, - пустая трата времени.Есть несколько аргументов, почему вам все равно потребуется установить полномасштабный экземпляр Visual Studio на сервере непрерывной интеграции, но вот их контраргументы:
Причина 1: мне нужно, чтобы он компилировался.
Реальность: Нет, не понимаешь. Для компиляции вам потребуется MSBuild , но это доступно бесплатно в Windows SDK. Обратите внимание, что существует несколько версий для разных операционных систем и версий .NET, поэтому будьте осторожны, чтобы загрузить правильную.
Причина 2: мне нужно быстро исправить ошибки на сервере.
Реальность: Нет, не понимаешь. Вы не должны делать быстрые исправления на сервере - вы должны проверить свою систему контроля версий, внести исправление, собрать и запустить тесты локально, пока она не заработает, проверить и попросить систему CI выполнить отдых для тебя. Вот почему у вас есть система CI.
Причина 3: без Visual Studio я не могу запустить MSTest на моем сервере CI.
Реальность: Неправильно. AFAIK, средство запуска MSTest также является частью SDK (по крайней мере, так оно выглядит на нашем сервере CI здесь - хотя я не могу это проверить, поскольку на данный момент у нас нет тестов ...). Однако быстрый поиск в Google нашел это сообщение в блоге , в котором объясняется, как это сделать и без SDK. Я не читал его подробно, поэтому не могу обещать, что это работает или законно. Вы были предупреждены.
Не стесняйтесь добавлять больше причин в комментариях, и я буду возражать им.