我正在尝试在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'.
我在核心项目中有一个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" />
我不确定这是问题还是在其他地方,在哪里以及如何开始调试?
答案 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>
它有效