在CI服务器上构建ATL VS2010项目

时间:2016-11-11 11:11:20

标签: visual-studio-2010 continuous-integration atl

我需要在没有安装VS2010的CI服务器上构建VS2010 C ++ ATL项目。

可以在安装了VS2010的开发人员计算机上成功构建项目。但是VS2010无法安装到CI服务器,因为这需要许可证。

所以,现在我正在尝试以下方法:

  1. 已安装VS2010 Express
  2. 已安装Microsoft Windows SDK for Windows 7
  3. 已安装的Windows驱动程序工具包(包括ATL和MFC)
  4. 虽然我在CI计算机上安装了ATL标头和库,但是我收到以下错误:

      

    错误C2039:'AtlSetPerUserRegistration':不是'ATL'的成员
      错误C3861:'AtlSetPerUserRegistration':找不到标识符

    我比较了VS2010安装和WDK的atlbase.h标头。他们是不同的:
    - 来自VS2010安装的atlbase.h确实有AtlSetPerUserRegistration定义;
    - 来自WDK安装的atlbase.h没有它。

    这会导致上述错误。

    问题是:如何在不安装VS2010的情况下配置CI构建机器来构建ATL项目?

    更新
    检查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%兼容的。

    现在的问题是:如何在没有安装VS2010的情况下在构建服务器上获取ATL v10.0?

1 个答案:

答案 0 :(得分:0)

如果其他人遇到同样的问题,这里有一个解决方法:

安装了VS2010的开发人员计算机上可以使用所需的ATL版本(例如VS2010 Professional) 它位于%VCINSTALLDIR%ATLMFC文件夹中 默认情况下为c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\

可以将文件夹ATLMFC手动复制到构建服务器中%VCINSTALLDIR%,其中安装了VS2010 Express。这使得构建服务器能够在不安装VS2010的情况下构建VS2010 ATL项目。

虽然这是一种解决方法。如果有的话,我希望看到更好的解决方案。所以,我不接受我的回答。