I have a very simple setup, a whole solution that builds using .NET 3.5. Runs fine on my machine, and the build server. I have since added a script to my build file, which will create an XML file, listing all the updates for our patcher. This runs fine on my machine, but not at all on the build server.
I have attached the output below, strangely enough, it seems to be compiling the script in .NET 2.0? Which will never work, because LINQ is present in the script.
Anyone have any ideas? Thanks in advance...
NAnt 0.90 (Build 0.90.3780.0; release; 08/05/2010)
Copyright (C) 2001-2010 Gerry Shaw
http://nant.sourceforge.net
Buildfile: file:///E:/Build/Importers/nant.importers.build
Target framework: Microsoft .NET Framework 3.5
Base Directory: E:\Build\Importers.
generateUpdateXml:
[script] Adding assembly NAnt.Core
[script] Adding assembly System.Xml
[script] Adding assembly System.Data.Linq
[script] Adding assembly System.Core
[echo] Compilation failed:
[echo] c:\Documents and Settings\dean.thomas\Local Settings\Temp\1\fjgfnsgk.0.cs(32,22) : error CS1026: ) expected
[echo] c:\Documents and Settings\dean.thomas\Local Settings\Temp\1\fjgfnsgk.0.cs(32,27) : error CS1002: ; expected
[echo] c:\Documents and Settings\dean.thomas\Local Settings\Temp\1\fjgfnsgk.0.cs(32,27) : error CS1525: Invalid expression term 'in'
[echo] c:\Documents and Settings\dean.thomas\Local Settings\Temp\1\fjgfnsgk.0.cs(32,30) : error CS1002: ; expected
[echo] c:\Documents and Settings\dean.thomas\Local Settings\Temp\1\fjgfnsgk.0.cs(32,96) : error CS1002: ; expected
[echo] c:\Documents and Settings\dean.thomas\Local Settings\Temp\1\fjgfnsgk.0.cs(33,16) : error CS1002: ; expected
[echo] c:\Documents and Settings\dean.thomas\Local Settings\Temp\1\fjgfnsgk.0.cs(34,9) : error CS1031: Type expected
[echo] c:\Documents and Settings\dean.thomas\Local Settings\Temp\1\fjgfnsgk.0.cs(35,28) : error CS1002: ; expected
[echo] c:\Documents and Settings\dean.thomas\Local Settings\Temp\1\fjgfnsgk.0.cs(35,28) : error CS1525: Invalid expression term ','
[echo] c:\Documents and Settings\dean.thomas\Local Settings\Temp\1\fjgfnsgk.0.cs(35,29) : error CS1002: ; expected
[echo] c:\Documents and Settings\dean.thomas\Local Settings\Temp\1\fjgfnsgk.0.cs(36,58) : error CS1002: ; expected
[echo] c:\Documents and Settings\dean.thomas\Local Settings\Temp\1\fjgfnsgk.0.cs(37,17) : error CS1525: Invalid expression term ')'
[echo] //------------------------------------------------------------------------------
[echo] // <auto-generated>
[echo] // This code was generated by a tool.
[echo] // Runtime Version:2.0.50727.3615
[echo] //
[echo] // Changes to this file may cause incorrect behavior and will be lost if
[echo] // the code is regenerated.
[echo] // </auto-generated>
[echo] //------------------------------------------------------------------------------
[echo]
[echo] using NAnt.Core;
[echo] using NAnt.Core.Attributes;
[echo] using System;
[echo] using System.Collections;
[echo] using System.IO;
[echo] using System.Linq;
[echo] using System.Reflection;
[echo] using System.Text;
[echo] using System.Xml;
[echo]
[echo]
[echo]
[echo] [FunctionSet("script", "script")]
[echo] public class nant4430d2e24afc4e1eb4d68138bbb0e3a0 : NAnt.Core.FunctionSetBase {
[echo]
[echo]
[echo] public static void ScriptMain(Project project)
[echo] {
[echo] string outputFolder = string.Format(@"{0}\{1}\", project.Properties["publish.dir.NetworkPath"], project.Properties["Project"]);
[echo] project.Log(Level.Info, outputFolder);
[echo]
[echo] var allItems = (from file in Directory.GetFiles(outputFolder, "*", SearchOption.AllDirectories)
[echo] select new
[echo] {
[echo] Filename = file,
[echo] LastModified = System.IO.File.GetLastWriteTime(file)
[echo] });
[echo] /*
[echo] XmlDocument xDoc = new XmlDocument();
[echo] xDoc.AppendChild(xDoc.CreateXmlDeclaration("1.0", "UTF-8", null));
[echo]
[echo] XmlElement feedElement = xDoc.CreateElement("Feed");
[echo] XmlElement tasksElement = xDoc.CreateElement("Tasks");
[echo]
[echo] foreach (var item in allItems)
[echo] {
[echo] XmlElement fileUpdateElement = xDoc.CreateElement("FileUpdateTask");
[echo] string parentFolder = System.IO.Path.GetFileName(System.IO.Path.GetDirectoryName(item.Filename));
[echo]
[echo] fileUpdateElement.SetAttribute("updateTo", item.Filename);
[echo]
[echo] if (parentFolder == "Importers")
[echo] {
[echo] //Do this
[echo] fileUpdateElement.SetAttribute("apply", "hot-swap");
[echo] fileUpdateElement.SetAttribute("localPath", string.Format(@"Importers\{0}", System.IO.Path.GetFileName(item.Filename)));
[echo] }
[echo] else
[echo] {
[echo] //Do that
[echo] fileUpdateElement.SetAttribute("apply", "app-restart");
[echo] fileUpdateElement.SetAttribute("localPath", System.IO.Path.GetFileName(item.Filename));
[echo] }
[echo]
[echo] //Condition, which we can just use the timestamp of the upload
[echo] XmlElement conditions = xDoc.CreateElement("Conditions");
[echo] XmlElement fileDateCondition = xDoc.CreateElement("FileDateCondition");
[echo] fileDateCondition.SetAttribute("type", "and");
[echo] fileDateCondition.SetAttribute("what", "newer");
[echo] fileDateCondition.SetAttribute("timestamp", item.LastModified.ToString("dd/MM/yyyy HH:MM:ss"));
[echo] conditions.AppendChild(fileDateCondition);
[echo] fileUpdateElement.AppendChild(conditions);
[echo] tasksElement.AppendChild(fileUpdateElement);
[echo] }
[echo]
[echo] feedElement.AppendChild(tasksElement);
[echo] xDoc.AppendChild(feedElement);
[echo] xDoc.Save("c:\\testing.xml"); */
[echo] }
[echo]
[echo] public nant4430d2e24afc4e1eb4d68138bbb0e3a0(NAnt.Core.Project project, NAnt.Core.PropertyDictionary propDict) :
[echo] base(project, propDict) {
[echo] }
[echo] }
[echo]
BUILD SUCCEEDED
Total time: 0.7 seconds.