CruiseControl.NetおよびNAntビルドの問題
-
03-07-2019 - |
質問
CruiseControl.netサーバーを初めて構成しています。私のチームはすでにNAntビルドスクリプトを使用しているので、スクリプトにサーバーを向けて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で実行すると次のエラーが発生することです。
関数呼び出しが失敗しました。 式: $ {framework :: get-framework-directory( 'net-3.5')} / msbuild.exe
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Microsoft .NET Framework 3.5(net-3.5) インストールされていない、または正しくない 設定済み。オブジェクト参照が設定されていません オブジェクトのインスタンスに。
実際、$ {framework :: get-framework-directory( 'net-3.5')}変数を使用してmsbuild.exeへのパスを取得します。ただし、このコードは以前に失敗したことはありません。 CCが実行されているユーザーアカウントを使用してサーバーにRDPを実行し、NAntビルドファイルを直接実行することもできます。正常に動作します。
CCが実行するだけで、それ以外の場合はこの正常なファイルが失敗するのはなぜですか。
注 -CCは、通常ビルドスクリプトを実行するマシンと同じマシンで実行されています
解決
これはNAntの問題のように聞こえますが、いくつかの問題と.NET 3.5がありました。使用しているNAntのバージョンは何ですか?
また、使用.NET 3.5の0.86ベータ1 ?男はNAntによってスローされた同じエラーメッセージを持っています。推奨される解決策は、最新のナイトリービルドを使用することでした。
他のヒント
CCサービスは、おそらく適切な権限を持つアカウントで実行されていません。コマンドライン(ログオンユーザーとして実行されます)を使用してCCを実行して、同じ問題があるかどうかを確認しましたか?