1

我一直在构建一个自定义构建任务,它读取 xml 文件,并将内容组合到一个 xml 文件中并将其写入构建的输出目录,我使用 ${OutputPath) 来获取它。

本地构建时构建任务工作正常,xml文件按预期显示。

但是,我已经添加了新的解决方案,因此覆盖了 AfterCompile 目标的 csproj 文件(我也尝试过 AfterBuild)以及我们的主 TFS 构建项目所需的特定自定义任务。TFS 构建现在失败,因为我的自定义任务引发了异常:

“QBBuildTask”任务意外失败。System.IO.DirectoryNotFoundException:找不到路径“C:*此解决方案的 TFS 构建输出路径*\86\Release\QueryBuilder.xml”的一部分。

请注意 ** 是我为减少 SO 错误大小而添加的。

当我的任务尝试写入时,发布文件夹似乎不存在。

我的问题是,如果任务不存在,我应该让任务创建目录,还是我为 TFSBuild 使用了错误的输出路径变量?

似乎有点奇怪,它在本地正常工作,即使我在尝试构建之前删除了输出文件夹。

请问有人有什么想法吗?

马龙

4

1 回答 1

0

结果发现在使用 TFSBuild 时 OutputPath 不正确,因此我的 xml 被随机放置在某个地方,现在使用了使用正确的 TFSBuild 属性“TeamBuildOutDir”的条件属性。

<PropertyGroup>
  <OutputPathCond Condition=" '$(TeamBuildOutDir)'=='' ">$(OutputPath)</OutputPathCond>
  <OutputPathCond Condition=" '$(TeamBuildOutDir)'!='' ">$(TeamBuildOutDir)</OutputPathCond>
</PropertyGroup>

这意味着它现在可以在本地和服务器上工作。

以为我会留下这个,以防有人有类似的问题。

于 2012-09-11T15:28:21.897 回答