Cruise Control.Net を実行するビルド サーバーで Nant を 0.86-beta1 から 0.92 にアップグレードしようとしています。現在(サーバーを再起動してからのようです)、<script>
タスクが失敗します。古い Nant に戻しても効果はありませんでした。タスクは次のとおりです。
<script language="C#">
<code>
<![CDATA[
public static void ScriptMain(Project project)
{
System.Collections.Generic.SortedDictionary<string, string> sortedByKey = new System.Collections.Generic.SortedDictionary<string, string>();
foreach(DictionaryEntry de in project.Properties)
{
sortedByKey.Add(de.Key.ToString(), de.Value.ToString());
}
NAnt.Core.Tasks.EchoTask echo = new NAnt.Core.Tasks.EchoTask();
echo.Project = project;
foreach(System.Collections.Generic.KeyValuePair<string, string> kvp in sortedByKey)
{
// Omit the many boring nant.tasks properties
if(kvp.Key.StartsWith("nant.tasks"))
continue;
echo.Message = String.Format("{0}: {1}", kvp.Key, kvp.Value);
echo.Execute();
}
}
]]>
</code>
</script>
これは、デバッグの補助として、定義されたすべてのプロパティの値をエコーするためにどこかからコピーしたスクリプトです。.Net 2.0 (Nant 0.86-beta1 が使用) と .Net 4.0 (Nant 0.92 の場合) の両方にあるべき場所ですが、 NantSortedDictionary
は名前空間に見つからないと文句を言います。System.Collections.Generic
それはアセンブリ System.DLL にあるので、Nant は確実にそれを見つけることができるはずです。
Nant アップグレードを行うために、以前のバージョンの隣のフォルダーに新しいバージョンをインストールし、PATH 変数を変更しました。何らかの理由で、CC.Net サービスを再起動するだけでは、新しいバージョンを使用するのに十分ではありませんでしたが、コンピューターを再起動すると問題が解決しました。しかし、その後、この問題が発生し始めました。PATHを元に戻しても(そしてもう一度再起動しても)修正されませんでした。