我们的代码库的一小部分是一些遗留的 Java 代码。我正在尝试添加一个新的构建来调用 ant 来构建这个项目。

第一个问题是 TFS 不允许您创建不构建 .Net 解决方案的构建。我通过复制以前的构建文件并添加作为构建入口点的 EndToEndIteration 任务来解决这个问题。

问题是没有填充任何常见的构建变量 - $(BuildDirectory)、$(SolutionRoot) - 全部为空。这几乎意味着我无法在不对路径进行硬编码的情况下调用我的 ant 任务(我绝对不能这样做)。

有任何想法吗?

有帮助吗?

解决方案 4

感谢所有的答案。

在我使出包括旁边的构建文件的空溶液结束。这样,所有的变量都填充,我只是包括了其所做的一切我想要的。

其他提示

您可能想看看 Teamprise创建扩展它允许构建Ant或Maven任务从TFS。

  1. 如果您还没有,请创建一个将存储和检索环境变量的任务,您肯定需要它们做任何与 java 相关的事情(我相信在 MSBuild 扩展包)
  2. 创建自定义任务来包装 Ant 或使用 MSBuild 社区任务 收藏
  3. 运行它一百万次并随时解决问题,从命令行执行此操作通常更容易、更快,因此请在终端内与 msbuild.exe 交朋友

您应该能够在环境变量之间传递您想要的任何信息,从而使您想做的事情成为可能。我不会向您推荐硬编码路径,但您必须将配置放在某个地方,这都是您想要更改的内容和您希望如何组织事物的权衡。如果您确实需要,您可以将所有配置推送到数据库中,并使用上述链接中的 SQL 任务之一将其吸收,但请记住,您添加了大量可能不必要的复杂性。

问你自己:

  • 这个值多久可能改变一次?
  • 如果发生变化,需要完成的全套任务是什么?

将答案写在某处,并确保团队中的每个人都理解。当谈到构建系统时,我认为“少即是多”。找到最简单的方法来做到这一点,一直这样做,直到变得不可接受为止,然后才增加复杂性......TFS 已经足够复杂了。

我认为你正在使用这里的工作错误的工具 - TFS绝不会比.NET应用程序建立任何其他一个很好的解决方案。我想你最好只是用蚂蚁在一个独立的能力。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top