私は初めてCruiseControl.netサーバーを構成しています。私のチームはすでにNAntビルドスクリプトを使用しているので、スクリプトを実行してNAntにすべての作業をさせるだけです。CruiseControl.NetとNAntビルドの問題
あなたが見ることができるように、それは非常に簡単です:
<project name="ChannelIP">
<tasks>
<nant>
<executable>C:\Program Files\nant-0.86-beta1\bin\nant.exe</executable>
<baseDirectory>D:\mypath</baseDirectory>
<buildFile>D:\mypath\myNAnt.build</buildFile>
<targetList>
<target>build</target>
</targetList>
</nant>
</tasks>
</project>
問題は、私はCCの下でそれを実行したときに、私は次のエラーを取得することです:
Function call failed. Expression: ${framework::get-framework-directory('net-3.5')}/msbuild.exe
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Microsoft .NET Framework 3.5 (net-3.5) is not installed, or not correctly configured. Object reference not set to an instance of an object.
私は、実際には、 msbuild.exeのパスを取得するには、$ {framework :: get-framework-directory( 'net-3.5')}変数を使用します。しかし、このコードはこれまでに失敗したことはありません。 CCが実行しているユーザーアカウントを使用してサーバーにRDPを作成し、NAntビルドファイルを直接実行しても問題ありません。
CCがそれを実行しているときに、この細かいファイルが失敗するのはなぜですか?
NOTE -CCは、私は通常、CCサービスは、おそらく適切な権限を持つアカウントで実行されていない
最新の夜間ビルドを使用して、トリックを行った。本当の問題は、ccnet.configファイルのNAntへのパスをハードコーディングし、最新のビルドを指すのを忘れたことでした。みんな助けてくれてありがとう! –