如何使用 NAnt 修改源代码?

2024-02-07

我想在构建解决方案之前使用 NAnt 修改 .h 文件中的字符串。

.h 文件中有一个宏:#define SERVER_ADDRESS "www.customserver.net",我想在部署软件之前修改该字符串,以便通过在命令行中传递地址来为自定义地址进行每个构建。

有谁知道如何做到这一点?

Thanks!


人们可以使用loadfile http://nant.sourceforge.net/release/latest/help/tasks/loadfile.html任务来帮助解决这个问题。此任务将给定文件加载到属性中。真正有用的是当你应用过滤链 http://nant.sourceforge.net/release/latest/help/types/filterchain.html with 替换令牌 http://nant.sourceforge.net/release/latest/help/filters/replacetokens.html替换文件的某些区域。例如,如果要定义一个类似模板的头文件看起来像这样:

#ifndef MyMacros_h
#define MyMacros_h

#define SERVER_ADDRESS "@SERVER_ADDRESS_TOKEN@"

#endif

可以使用 loadfile 任务将 @SERVER_ADDRESS_TOKEN@ 替换为任何字符串,然后使用echo http://nant.sourceforge.net/release/latest/help/tasks/echo.html实际编写的任务真实标题文件退出。

<loadfile file="MyMacrosTemplate.h" property="theMacrosFileContents">
    <filterchain>
        <replacetokens>
            <token key="SERVER_ADDRESS_TOKEN" value="www.customerserver.net" />
        </replacetokens>
    </filterchain>
</loadfile>
<echo file="MyMacros.h" message="${theMacrosFileContents}" />

这将生成一个 MyMacros.h 文件,其中包含修改后的 SERVER_ADDRESS 字符串。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 NAnt 修改源代码? 的相关文章

随机推荐

  • /socket.io/socket.io.js 404(未找到)

    我在使用 socket io 时遇到一些问题 我已经查看了我所看到的所有答案 但我找不到任何差异 任何帮助 将不胜感激 我在将代码粘贴到此处时也遇到了格式问题 因此我将其放在了 Pastebin 上 http pastebin com tm
  • 在 ghci 中加载已编译模块时出现“无法加载接口”错误

    你好哈斯克尔社区 我是 Haskell 的新手 当我尝试构建我的第一个更大的项目时遇到了问题 这是问题的最小示例 我正在使用 cabal 来构建 这是一个简单模块的目录结构 FooMod1 FooMod1 cabal Setup hs sr
  • 带有 Angular 的手表工厂变量

    我的单页应用程序有 2 个控制器 第一个用于主菜单 第二个用于视图 他们与这家工厂共享数据 myApp factory MenuFactory function var factory Monitor doneJob Control Rep
  • 自定义波特率

    我正在尝试通过虚拟 COM 端口与硬件设备通信 主机为PC Windows操作系统PC 设备正在以 921600 波特率工作 这段代码的工作原理 DCB dcb dcb BaudRate CBR 115200 SetCommState hP
  • 用空格分割字符串,然后在 ansible/jinja2 中再次连接它

    我正在尝试 清理 Ansible ansible 2 1 1 0 1 fc24 noarch 剧本中变量中的空格 但我首先会split 它然后加入 再次 由于某种原因 该方法给了我以下错误 hosts all remote user roo
  • MATLAB 中的反向谱图 A La Aphex Twin

    我正在尝试将图像视为频谱图 从而在 MATLAB 中将图像转换为音频信号就像 Aphex Twin 的歌曲中那样舔窗者 http www bastwood com aphex php 不幸的是 我很难得到结果 这是我现在所拥有的 funct
  • 将驼峰式字符串转换为 kebab 式字符串的正则表达式

    function hyphenate str var replace str str toLowerCase replace s b g replace console log str return str hyphenate This I
  • ECS Fargate 中的 StoppedReason 被截断

    在 ECS Fargate 中 当任务失败时 有一个 停止原因 字段 它会提供一些有用的日志记录 然而我注意到它在 255 个符号后被截断 下面的屏幕截图 我检查了网络选项卡并跟踪了 http 响应的 JSON 即使在那里它也被截断了 所以
  • iOS 的粒子动画

    我需要粒子动画UIView基于2D的游戏 目前我正在使用一组图像来制作粒子动画 这使得我的应用程序大小增加 有时会导致内存泄漏 有没有办法使用Core Animation制作粒子动画 cocos2d 参见http cocos2d iphon
  • 应用程序的生命周期 - 当应用程序终止并且推送套件有效负载到来时

    应用程序的生命周期是怎样的 当应用程序处于终止状态并且推送套件有效负载到来时 首先 Pushkit 委托方法将起作用 或者 AppDelegate 方法将起作用 有人可以描述在这种情况下调用方法的顺序吗 感谢您的回答 提前致谢 一旦推送套件
  • '无效更新:第 1 部分中的行数无效

    我正在尝试对 tableView 中的聊天重新排序 最近更新的聊天记录应插入IndexPath row 0 section 1 我的理解是 为了删除一行 它必须是可见的 如果该行不可见 则当更新数据源时 我只需tableView inser
  • 如何将 TeamCity 设置为在构建失败时不生成构建工件?

    如何设置 TeamCity 以便在由于单元测试失败而导致构建失败时它不会发布构建工件 我很确定它在 6 0 版本之前是这样工作的 但自从升级到 6 0 后 即使测试失败 它也总是会产生工件 我检查了 如果至少一项测试失败 则构建失败 我们的
  • Powershell:如何将 -whatif 传播到另一个模块中的 cmdlet

    我一直在尝试使用 ShouldProcess 方法编写支持 whatif 的安全代码 以便我的用户在真正运行 cmdlet 之前就知道它应该做什么 然而我遇到了一些困难 如果我使用 whatif 作为参数调用脚本 pscmdlet Shou
  • 基于 Numpy 时间的向量运算,其中前面元素的状态很重要 - for 循环合适吗?

    在状态很重要的情况下执行基于时间的计算时 numpy 数组提供什么功能 换句话说 序列中较早或较晚发生的事情很重要 考虑以下基于时间的向量 TIME np array 0 10 20 30 40 50 60 70 80 90 FLOW np
  • 为任意音频文件生成缩略图

    我想在最大尺寸为 180 180 像素的图像中表示音频文件 我想生成这个图像 以便它以某种方式给出音频文件的表示 将其想象为 SoundCloud 的波形 幅度图 我想知道你们中是否有人有这方面的东西 我一直在搜索一些 主要是 音频可视化
  • F#:可为 Null 支持

    在 F 中使用 Nullable 的正确方法是什么 目前我正在使用这个 但它看起来非常混乱 let test left Nullable
  • apache htaccess 使用别名重写

    我们正在更改我们的域名 这旨在适用于独立应用程序 在 Apache 虚拟主机文件中 DocumentRoot 是 var www website html 而不是此块中的 var www example html Alias apps de
  • 为什么我可以在没有参数的情况下初始化 UIView,但它的文档没有空的初始化程序?

    let view UIView 为什么当唯一记录的时候编译没有错误UIView初始化器是init frame CGRect 具体来说 我正在尝试编写一个继承自的新类UIView 但是这段代码会抛出一个错误 class SquadHorizo
  • 谷歌反向地理编码 - 如何捕捉到最近的完整邮政编码

    我正在使用 Google 的反向地理编码功能和地图 api v3 来检索纬度经度的邮政地址 当在地图上拖动标记时 这仅是英国应用程序 系统的一部分需要完整或接近完整的邮政编码才能正确处理 然而 反向地理编码器通常只返回邮政编码的一部分 例如
  • 如何使用 NAnt 修改源代码?

    我想在构建解决方案之前使用 NAnt 修改 h 文件中的字符串 h 文件中有一个宏 define SERVER ADDRESS www customserver net 我想在部署软件之前修改该字符串 以便通过在命令行中传递地址来为自定义地