2016-11-11 4 views
1

Мне нужно построить VS2010 проект C++ ATL на сервере CI без установки VS2010.Проект ATL VS2010 на сервере CI

Проект может быть успешно построен на машине разработчиков с установленным VS2010. Но VS2010 не может быть установлен на серверы CI, потому что для этого требуется лицензия.

Итак, сейчас я пытаюсь следующий подход:

  1. установлен VS2010 Экспресс
  2. установлен Microsoft Windows SDK для Windows 7
  3. установлен драйвер для 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?

+0

Более или менее актуальный ATL установлен только с Visual Studio. ATL WDK совместим, возможно, с базовыми вещами. Вы пробовали VS2010 Pro, который не является бесплатным, поэтому вам нужна коммерческая лицензия для сервера CI. Вы можете предпочесть более свежие версии VS, которые включают ATL в бесплатные (сообщества) издания. –

+0

Мне нужно настроить более 10 агентов в TC. Настройка VS2010 Pro для каждого из них, по-видимому, не является оптимальным решением. И перейти на новую версию VS довольно сложно, потому что есть набор устаревших приложений с зависимостями со сторонними статически связанными библиотеками. Спасибо за ваше предложение в любом случае) –

ответ

0

В случае если кто-то встречается один и тот же вопрос, здесь есть обходной путь:

Требуемая версия АТЛ доступна на разработчиков машины с VS2010 установленной (например, VS2010 Professional).
Он расположен в папке %VCINSTALLDIR%ATLMFC.
По умолчанию это c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\

Папка ATLMFC может быть скопирован на сервер сборки руками в %VCINSTALLDIR%, где установлен VS2010 Express. И это делает сервер сборки способным создавать VS2010 проекты ATL без установки VS2010.

Хотя это обходной путь. И я бы хотел увидеть лучшее решение, если оно есть. Итак, я не принимаю свой ответ.

Смежные вопросы