【发布时间】:2012-08-21 01:10:55
【问题描述】:
我一直在尝试在运行 Cruise Control.Net 的构建服务器中将 Nant 从 0.86-beta1 升级到 0.92。现在(似乎从我重新启动服务器开始),<script> 任务失败了。即使恢复到旧的南特也无济于事。任务如下:
<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>
这是我从某处复制的脚本,用于回显所有已定义属性的值,以帮助调试。 Nant 抱怨在命名空间System.Collections.Generic 中找不到SortedDictionary,尽管它应该在.Net 2.0(Nant 0.86-beta1 使用)和.Net 4.0(对于Nant 0.92)中。它在程序集 System.DLL 中,所以看起来 Nant 应该可以找到它。
要进行 Nant 升级,我只是将新版本安装在先前版本旁边的文件夹中,并更改了 PATH 变量。出于某种原因,仅重新启动 CC.Net 服务不足以让它开始使用新版本,但重新启动计算机就可以了。但后来我开始遇到这个问题。将 PATH 切换回来(并再次重新启动)并没有解决它。
【问题讨论】:
标签: nant