我需要在沒有安裝VS2010的CI服務器上構建VS2010 C++ ATL項目。在CI服務器上構建ATL VS2010項目
該項目可以在安裝了VS2010的開發人員計算機上成功構建。但是VS2010不能安裝到CI服務器,因爲這需要許可證。
所以,現在我想下面的辦法:
- 安裝VS2010快遞
- 安裝Microsoft Windows SDK的Windows 7的
- 安裝了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?
或多或少的當前ATL只與Visual Studio一起安裝。 WDK的ATL只是可能的基本功能。您嘗試過的VS2010 Pro不是免費的,因此您需要CI服務器的商業許可證。您可能更喜歡更新的VS版本,其中包括免費(社區)版本的ATL。 –
我需要在TC中設置10個以上的代理。將VS2010 Pro設置爲每個人似乎都不是最佳解決方案。升級到更新版本的VS非常困難,因爲有一組遺留應用程序依賴於第三方靜態鏈接庫。無論如何感謝您的建議) –