Robert
Robert

Reputation: 4406

Nuget package restore is not working on TFS build server

I followed this blog post and I expected Nuget to just work. It obviously has not. I get errors on all of my third party dll's that I expect NuGet to update automatically:

 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications\
Microsoft.WebApplication.targets (182): Could not copy the file "bin\AutoMapper.dll"
 because it was not found.

I have set everything up correctly and I have ensured that the solution has Package restore enabled. If I delete a package locally and build, NuGet restores that package for me.

I am not sure why it is not fuctioning on the build server though.

Any Suggestions?

Upvotes: 0

Views: 2438

Answers (2)

Julius Depulla
Julius Depulla

Reputation: 1633

I came across a similar error for log4net nuget package and I solved it in a different way. May be this will be useful to someone some day.

The error from TFS Team Build 2015

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications\ Microsoft.WebApplication.targets (182): Could not copy the file "bin\Log4net.dll" because it was not found.

Cause

The path to the nuget package in the .csproj file for referencing the package in the project cannot be found

Resolution

Edit the .csproj file of the project that has the error. Look for the node ItemGroupin the .csproj file You will see the HintPath pointing to a folder, most like the folder contain the name of solution as where it will file the DLL. Replace the HintPath with <HintPath>..\..\Assemblies\3rd party\log4net\1.2.10.0\2.0\log4net.dll</HintPath>

You nuget package library may not be log4net but a different library. A very easy way would be to be edit the .csproj file of a project in the solution that contains the same nuget package library, copy the reference of the nuget in the ItemGroup and replace in the project that has the error. The reference should start contain ...\Assemblies\3rd party\ ... instead of a physical file location on your machine

Upvotes: 0

liorha
liorha

Reputation: 336

Try to add NugetRestore Activity to the TFS workfolw

enter image description here

Note:

For Team Foundation Build 2013 on-premises and Visual Studio Team Services (formerly Team Foundation Service), the default Build Process Templates already implement the NuGet Package Restore workflow without any special configuration.

Upvotes: 1

Related Questions