Search code examples
asp.nettfstfsbuild

How to debug TFS online Build, Could not find file?


I'm trying to build a solution on TFS online Build, the solution build successfully on all team members machines without any pre configuration, but unfortunately it's fail to build on "tfs online build".

the error message from tfs build console:

##[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 i have a MainConfiguration.config file inside the core project and AfterBuild event in Admin.API to copy the config file from core project to /bin folder in Admin.API project and every think is working perfectly in team members machine

 <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" />

i'm not sure if this the issue or in some place else, where and how to start debugging?


Solution

  • the issue was that msBuild on tfs online try to copy the file bin\MainConfiguration.config to obj\Release\Package\PackageTmp\bin\MainConfiguration.config before copy it to bin\MainConfiguration.config so i have edited the copy target action and make it run before the build process to be like:

      <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>
    

    and it works