如何调试TFS在线构建,找不到文件?

时间:2019-06-05 11:52:13

标签: asp.net tfs tfsbuild

我正在尝试在TFS在线构建上构建解决方案,该解决方案可以在所有团队成员计算机上成功构建,而无需任何预先配置,但是不幸的是,它无法在“ tfs在线构建”上构建。

来自tfs构建控制台的错误消息:

##[error]C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Web\Microsoft.Web.Publishing.targets(2603,5): Error : Copying file bin\MainConfiguration.config to obj\Release\Package\PackageTmp\bin\MainConfiguration.config failed. Could not find file 'bin\MainConfiguration.config'.

enter image description here 我在核心项目中有一个MainConfiguration.config文件,在Admin.API中有一个AfterBuild事件,可以将配置文件从核心项目复制到Admin.API项目中的/ bin文件夹中,并且每个想法都可以在团队成员计算机中正常工作

 <Target Name="MainConfigurationIntegration_config_AfterBuild" AfterTargets="AfterBuild" Condition="Exists('..\Core\Config\MainConfiguration.$(Configuration).config')">
<Copy SourceFiles="..\Core\Config\MainConfiguration.$(Configuration).config" DestinationFolder="$(OutputPath)" />
<Move SourceFiles="$(OutputPath)MainConfiguration.$(Configuration).config" DestinationFiles="$(OutputPath)MainConfiguration.config" />

我不确定这是问题还是在其他地方,在哪里以及如何开始调试?

2 个答案:

答案 0 :(得分:1)

  

如何调试TFS在线构建,找不到文件?

根据错误:

  

错误:将文件bin\MainConfiguration.config复制到    obj\Release\Package\PackageTmp\bin\MainConfiguration.config failed 。   找不到文件“ bin \ MainConfiguration.config”。

出现此错误时,您似乎是将Web项目作为包发布。

因此,要调试此问题,首先,我们需要确保自定义目标已成功执行,这意味着将从MainConfiguration.$(Configuration).config项目复制core并将其重命名为MainConfiguration.config

您可以在构建管道中添加任务Copy Files任务和Publish Build Artifacts任务以输出构建目录,以便我们检查MainConfiguration.$(Configuration).config是否成功复制。

然后,您应确保在相同代理作业中进行构建和发布任务,否则,构建和发布任务可能会在不同的代理上运行,您的自定义目标将失败。

由于我们没有更多信息,例如关于获取源的构建定义,构建任务,发布任务,因此我们无法为您提供准确的问题位置,如果上述信息不能帮助您解决此问题,请分享有关的更多信息它。

希望这会有所帮助。

答案 1 :(得分:0)

问题是在线tfs上的msBuild尝试将文件bin\MainConfiguration.config复制到obj\Release\Package\PackageTmp\bin\MainConfiguration.config 在将其复制到bin\MainConfiguration.config之前,所以我已经编辑了复制目标操作,并使其在构建过程之前运行,如下所示:

  <Target Name="MainConfigurationIntegration_config_AfterBuild" BeforeTargets="BeforeBuild" Condition="Exists('..\Core\Config\MainConfiguration.$(Configuration).config')">
    <Copy SourceFiles="..\Core\Config\MainConfiguration.$(Configuration).config" DestinationFolder="$(OutputPath)" />
    <Move SourceFiles="$(OutputPath)MainConfiguration.$(Configuration).config" DestinationFiles="$(OutputPath)MainConfiguration.config" />
  </Target>

它有效