gpt4 book ai didi

c# - 使用 .Net 2 的 Nant 脚本?为什么?

转载 作者:行者123 更新时间:2023-11-30 15:09:10 24 4
gpt4 key购买 nike

我有一个非常简单的设置,一个使用 .NET 3.5 构建的完整解决方案。在我的机器和构建服务器上运行良好。我已经在我的构建文件中添加了一个脚本,它将创建一个 XML 文件,列出我们补丁程序的所有更新。这在我的机器上运行良好,但在构建服务器上完全没有。

我附上了下面的输出,奇怪的是,它似乎是在.NET 2.0 中编译脚本?这永远行不通,因为 LINQ 存在于脚本中。

有人有什么想法吗?提前致谢...

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.

最佳答案

我也遇到了这个问题,不得不停止在我的 NAnt 脚本中使用 3.5 功能。

看起来好像 NAnt 正在使用 v2.0 编译器从您的 block 编译代码,因为 NAnt 本身是使用 v2.0 编译器构建的。

此处建议对 NAnt 源代码进行破解:

http://www.mail-archive.com/nant-users@lists.sourceforge.net/msg11867.html

关于c# - 使用 .Net 2 的 Nant 脚本?为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4750237/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com