我目前正在使用CruiseControl.NET来自动化我的构建。在我的构建环境中,我们有两种不同的方式来构建解决方案——一种是通过Keil uVision4 IDE,另一种是通过 Visual Studio 2008。
我已经成功获得了 Visual Studio 解决方案,可以使用 CruiseControl.NET 正确构建,并创建了一个批处理文件,该文件正确使用 Keil 的 uVision 命令行界面来编译我的 uvproj 项目(此处为编译详细信息)。
问题描述
1)如果我使用管理员权限创建命令提示符,我可以在我的 Windows 2008 服务器上成功执行构建脚本并构建项目(我手动执行此操作 - 开始 -> 运行 -> 使用 ctrl-shift-enter 运行的 cmd作为管理员)。
2) 但是,如果我在没有管理员权限的情况下创建命令提示符并尝试执行批处理文件,则批处理文件将不起作用,除非我接受要求我确认运行批处理脚本需要管理员权限的提示。
如何以管理员身份通过 CruiseControl 自动执行批处理文件?
这是可以使用RunAs命令自动化的吗?
技术细节
1) 正在执行的批处理文件非常简单 - 它删除旧的输出并重新生成输出,在下面的位置创建一个构建日志文件。
set BuildLogLocation=BuildLog\BuildLog.txt
echo on
cd ../..
cd PTM
rmdir /s /q output
mkdir output
mkdir BuildLog
C:\Keil\UV4\UV4.exe -r myProj.uvproj -o %BuildLogLocation%
echo ErrorLevel of build is %ERRORLEVEL%
echo build complete, see %BuildLogLocation%
2)目前我正在寻找使用 Exec 功能来运行上面的 Keil 构建脚本:
<Exec>
<Command>C:\myProject\Build\KeilBuild\BuildScript.bat<Command/>
<buildTimeoutSeconds>600<buildTimeoutSeconds/>
<!-- Details about error codes can be found here:
http://www.keil.com/support/man/docs/uv4/uv4_commandline.htm -->
<successExitCodes>0,1</successExitCodes>
<Exec/>
相关问题: