我尝试在运行于Windows Server 2008 R2上的Hudson上编译Visual C ++ 2010 Express解决方案,但由于缺少包含路径而失败。
项目需要在Microsoft.Cpp.Win32.user.props
中定义的%LOCALAPPDATA%\Microsoft\MSBuild\v4.0
中包含的其他包含目录。
当我登录到服务器时,cd到hudson工作区目录并运行MSBuild项目编译(使用位于我的用户localappdata目录中的props文件)。由于hudson服务作为“本地系统”运行,%LOCALAPPDATA%
为C:\Windows\System32\config\systemprofile\AppData\Local\
。所以我在C:\Windows\System32\config\systemprofile\AppData\Local\Microsoft\MSBuild\v4.0
中放了一份Microsoft.Cpp.Win32.user.props。
当我在Hudson中开始构建时(使用MSBuild ... / verbosity:diag)我看到了
UserRootDir = C:\Windows\system32\config\systemprofile\AppData\Local\Microsoft\MSBuild\v4.0
在输出中但不包含IncludePath
中的包含路径。
当我将.props文件设置为无效的xml文件(这使得手动构建在开始时失败)时,Hudson构建不报告此失败。似乎MSBuild在Hudson中运行时不会解析文件。
这里出了什么问题?我在哪里放置道具文件或如何定义附加的包括Dirs?
...问候
答案 0 :(得分:5)
我建议您手动为Hudson任务设置 UserRootDir 。对于 MDBuild ,您可以设置命令行参数:
/p:Configuration=Release;Platform=Win32;UserRootDir=c:\MSBuild