現在、CruiseControl.NETを使用してビルドを自動化しています。私のビルド環境でソリューションをビルドするには、2 つの異なる方法があります。1 つはKeil uVision4 IDE を使用する方法で、もう 1 つは Visual Studio 2008 を使用する方法です。
CruiseControl.NET を使用して Visual Studio ソリューションを適切にビルドすることに成功し、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/>
関連する質問: