В настоящее время я использую CruiseControl.NET для автоматизации моей сборки. У нас есть два разных способа создания решения в моей среде сборки - один - с помощью Keil uVision4 IDE, другой - через Visual Studio 2008.
Я успешно получил решение Visual Studio для правильной сборки с использованием CruiseControl.NET и создал пакетный файл, который правильно использует интерфейс командной строки Keil uVision для компиляции моего проекта uvproj (подробности компиляции здесь).
описание проблемы
1) Я могу успешно выполнить сценарий сборки на моем сервере Windows 2008 и построить проект, если я создаю командную строку с правами администратора (я делаю это вручную - запуск -> запуск -> cmd с ctrl-shift-enter для запуска как администратор).
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/>
Связанные вопросы: