Мне нужно построить VS2010 проект C++ ATL на сервере CI без установки VS2010.Проект ATL VS2010 на сервере CI
Проект может быть успешно построен на машине разработчиков с установленным VS2010. Но VS2010 не может быть установлен на серверы CI, потому что для этого требуется лицензия.
Итак, сейчас я пытаюсь следующий подход:
- установлен VS2010 Экспресс
- установлен Microsoft Windows SDK для Windows 7
- установлен драйвер для Windows Kit (включает ATL и MFC)
Хотя у меня есть АТЛ заголовки и библиотеки установлены на CI машине, я получаю следующие ошибки:
ошибка C2039: 'AtlSetPerUserRegistration': не является членом 'АТЛ'
ошибки C3861: 'AtlSetPerUserRegistration': идентификатор не найден
Я сравнил atlbase.h
заголовки из установки VS2010 и из WDK. Они разные:
- atlbase.h
из VS2010 установка имеет AtlSetPerUserRegistration
определение;
- atlbase.h
из WDK оборудован не имеет.
Это вызывает ошибку, упомянутую выше.
Вопрос в том, как настроить CI-сборку для построения проектов ATL без установки VS2010?
Обновление:
Проверка atldef.h
файл, который я нашел следующее:
VS2010 версия имеет следующую строку:
#define _ATL_VER 0x0A00 // Active Template Library version 10.00
и WDK версия имеет следующую строку:
#define _ATL_VER 0x0800 // Active Template Library version 8.00
Так, WDK Версия ATL отличается от версии VS2010 ATL. Вот почему они не на 100% совместимы.
Теперь встает вопрос: как получить ATL v10.0 на сервере сборки без установки VS2010?
Более или менее актуальный ATL установлен только с Visual Studio. ATL WDK совместим, возможно, с базовыми вещами. Вы пробовали VS2010 Pro, который не является бесплатным, поэтому вам нужна коммерческая лицензия для сервера CI. Вы можете предпочесть более свежие версии VS, которые включают ATL в бесплатные (сообщества) издания. –
Мне нужно настроить более 10 агентов в TC. Настройка VS2010 Pro для каждого из них, по-видимому, не является оптимальным решением. И перейти на новую версию VS довольно сложно, потому что есть набор устаревших приложений с зависимостями со сторонними статически связанными библиотеками. Спасибо за ваше предложение в любом случае) –