我一直在努力构建一个自定义构建任务,它读取xml文件,并将内容合并到一个xml文件中并将其写入构建的输出目录,我使用$ {OutputPath)来获取它。 / p>
构建任务在本地构建时工作正常,xml文件按预期显示。
但是,我添加了新的解决方案,因此带有AfterCompile目标的csproj文件被覆盖(我也尝试过AfterBuild),其中包含我们的主TFS构建项目所需的特定自定义任务。 TFS构建现在失败,因为我的自定义任务抛出异常:
“QBBuildTask”任务意外失败。 System.IO.DirectoryNotFoundException:找不到部分内容 path'C:* TFS构建输出的路径 溶液* \ 86 \推出\ QueryBuilder.xml”。
请注意**是我的补充,以减少SO的错误大小。
当我的任务尝试写入时,看起来版本文件夹不存在。
我的问题是,如果目录不存在,我是否应该创建目录,或者我是否使用错误的输出路径变量进行TFSBuild?
看起来有点奇怪,它在本地正常工作,即使我在尝试构建之前删除了输出文件夹。
有人有任何想法吗?
马龙
答案 0 :(得分:0)
使用TFSBuild时输出OutputPath不正确,所以我的xml被放在某处随机,现在使用正确的TFSBuild属性'TeamBuildOutDir'使用条件属性。
<PropertyGroup>
<OutputPathCond Condition=" '$(TeamBuildOutDir)'=='' ">$(OutputPath)</OutputPathCond>
<OutputPathCond Condition=" '$(TeamBuildOutDir)'!='' ">$(TeamBuildOutDir)</OutputPathCond>
</PropertyGroup>
现在这意味着它可以在本地和服务器上运行。
以为如果有人遇到类似问题我会留下这个问题。