2016-11-11 86 views
1

我需要在沒有安裝VS2010的CI服務器上構建VS2010 C++ ATL項目。在CI服務器上構建ATL VS2010項目

該項目可以在安裝了VS2010的開發人員計算機上成功構建。但是VS2010不能安裝到CI服務器,因爲這需要許可證。

所以,現在我想下面的辦法:

  1. 安裝VS2010快遞
  2. 安裝Microsoft Windows SDK的Windows 7的
  3. 安裝了Windows驅動程序工具包(它包括ATL和MFC)

雖然我有ATL頭文件和庫的CI機器上安裝,我得到了以下錯誤:

錯誤C2039: 'AtlSetPerUserRegistration':不是 'ATL'
錯誤C3861的成員: 'AtlSetPerUserRegistration':未找到

我比較了來自VS2010安裝和從WDK atlbase.h頭標識符。他們不同:
- atlbase.h從VS2010安裝確實有AtlSetPerUserRegistration的定義;
- atlbase.h從WDK安裝沒有它。

這會導致上述錯誤。

現在的問題是:如何在不安裝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?

+0

或多或少的當前ATL只與Visual Studio一起安裝。 WDK的ATL只是可能的基本功能。您嘗試過的VS2010 Pro不是免費的,因此您需要CI服務器的商業許可證。您可能更喜歡更新的VS版本,其中包括免費(社區)版本的ATL。 –

+0

我需要在TC中設置10個以上的代理。將VS2010 Pro設置爲每個人似乎都不是最佳解決方案。升級到更新版本的VS非常困難,因爲有一組遺留應用程序依賴於第三方靜態鏈接庫。無論如何感謝您的建議) –

回答

0

在情況下,如果其他人遇到了同樣的問題,這裏是一個解決辦法:

ATL所需的版本可開發機安裝(例如VS2010專業版)VS2010上。
它位於文件夾%VCINSTALLDIR%ATLMFC
默認情況下它是c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\

文件夾ATLMFC可以通過手被複制到構建服務器爲%VCINSTALLDIR%,在安裝VS2010快。這使得構建服務器能夠在不安裝VS2010的情況下構建VS2010 ATL項目。

雖然這是一種解決方法。如果有的話,我希望看到更好的解決方案。所以,我不接受我的答案。

相關問題