- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试编写一个自定义 NAnt 任务来执行一些基于文件的操作。其中一项非常有用的功能是运行 <expandproperties>
的能力。过滤其中一个输入文件。
为了保持任务的通用性,我只想启用对 <filterchain>
的支持元素(类似于 <copy>
任务的工作方式)。
我一直在使用 <copy>
的源代码任务来指导我,但是在编写任务时我不断遇到内部方法。我知道我可以使用反射来打破封装,但我不愿意这样做。
有没有人知道任何有用的文章,或者有这方面的经验?
最佳答案
我开始着手创建一个采用 TextReader 的私有(private) Filter 子类(基本上是在 NAnt 源代码中重新创建 PhysicalTextReader)。但是我意识到,实际上,有一种更简单的方法可以通过过滤器链读取文件:
[TaskName("mytask")]
public class MyTask : Task
{
/// <summary>
/// Chain of filters used to alter the input file's content as it is read.
/// </summary>
[BuildElement("filterchain")]
public FilterChain Filters { get; set; }
/// <summary>
/// The input file.
/// </summary>
[TaskAttribute("input")]
public FileInfo InputFile { get; set; }
protected override void ExecuteTask()
{
Log(FileUtils.ReadFile(InputFile.FullName, Filters, null));
}
}
然后你就可以像你期望的那样使用它了:
<mytask input="foo.txt">
<filterchain>
<expandproperties />
</filterchain>
</mytask>
关于nant - 编写能够使用过滤器的自定义 NAnt 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12914477/
我正在使用 nant 来构建我们的产品,并编写了一个自定义任务来通知我们的服务台系统有新的构建版本可用。 我使用 nant 构建自定义任务,并将自定义 nant 任务程序集复制到 nant 文件夹中,
NAnt 是否仍在积极开发中,或者是否有其他项目在自动构建领域获得更多动力? 编辑: 显然,MSBuild 会继续进步,但考虑到可以使用 NAnt 完成的所有额外任务,为什么开发突然停止,因为许多开源
我正在使用 NAnt 以不同的配置为同一软件构建 5 个不同的安装程序包。这些任务可以并行化,因为它们不相互依赖。正在构建这些配置的 Installshield 在多核 CPU 使用率方面似乎效率低下
我知道 NAnt 经常被使用(嗯,我总是将它用于我的 CI 构建)但是自 2007 年 12 月以来没有新的正式版本。该项目是在接受积极的开发还是已经死池了?让我担心的是,如果我继续使用它,并且它停止
我正在尝试编写一个自定义 NAnt 任务来执行一些基于文件的操作。其中一项非常有用的功能是运行 的能力。过滤其中一个输入文件。 为了保持任务的通用性,我只想启用对 的支持元素(类似于 任务的工作
我有一个 nant 脚本,我看到即使我的 exec 失败,NANT 的退出代码仍然是 0。如何更改 NANT 退出代码? 最佳答案 exec task有一个名为“resultproperty”的属性,
我在这里有一个大项目,我在其中创建了一些构建文件,这些文件用于不同的场景,包括 ccnet。所以,我有 BF1.build 和 BF2.build 我只想在 BF1 的某个地方调用/执行来自 BF2.
我在构建文件中有一个 fileset 元素定义为: 当它运行时(作为复制任务的一部分),如果任何文件丢失它都不会提示。虽然我可以在 fileset 元素中使用 failonem
我想使用 ant 脚本创建一个文件。像 mkdir 一样,在 nant 脚本中可以使用任何命令来创建文本或 doc 文件吗? 最佳答案 您可以使用 创建文件(或更新其时间戳)的任务。使用 您可以将
首先,我已经看过这个帖子了:nant mail issues但唯一的答案并不令人满意(即:对我不起作用)。 我正在使用 NAnt 获取最新版本的源代码、升级库和应用程序版本、构建应用程序、build设
NAnt 构建文件中用于项目、目标、任务、函数等的关键字是否区分大小写? 最佳答案 试试这个 NAnt 构建脚本: 这是输出: test:
我正在寻找一种在单独的线程上执行的能力,并具有在执行完成后加入那些单独的线程的能力...在任何版本的NAnt中是否存在这样的事情? 最佳答案 从注释中:Parallel task execution
我有一个通用的 common.xml 文件,其中包含许多在多个构建中重复使用的通用 nant 目标。我想要做的是“覆盖”其中一些 nant 目标,并在执行现有目标之前或之后包括其他步骤。 是否首先使用
我不是 Nant 的专家,所以我不得不问这个 redicolus 问题。 我有一个名为 svn.source.root 的变量指向 c:\folderA\FolderB\FolderC 我怎样才能让
我正在尝试使用 Nant 替换 wxs 文件中出现的字符串。 我只找到了下面的例子,它使用了 ,但它似乎只能在复制的文件中使用。有没有其他方法可以替换字符串而不实际复制文件?
有谁知道如何使用带有换行符的 echo 输出消息,在 Ant 世界中我使用了 ${line.seperator},但我在 Nant 中没有看到任何相关属性,也没有任何函数提供此信息。我也尝试了\n 转
我正在寻找我的构建来删除目录的内容而不触及某个文件夹。下面是我正在尝试的,它甚至对我来说看起来是错误的......除了当我运行它时它会爆炸这一事实。我是否需要明确删除该目录的内容,同时排除我的 Rep
我怎样才能单独从属性文件中读取一个值。例如,如何从以下示例中读取 build.home 或 temp.dir 的值。 env.properties 的内容 build.home=c:\build te
目前我正在调用 findstr 并将输出存储在一个属性中以供事后检查 - 我确信一定有更好的解决方案。 这真的是最好的方法吗? 最佳答案 关于nant - 如何检查文件是否包含
我正在尝试并行运行多个任务以减少构建时间。但似乎任务正在一个接一个地依次执行。这对我的构建花费了太多时间。有没有办法在 NAnt 中并行运行多个任务? 最佳答案 之前好像问过这个问题。见 NAnt:
我是一名优秀的程序员,十分优秀!