0
votes

So I have a weird problem, and I was hoping you fine folks might be able to point me in a good direction for how to debug this problem.

I have a really really old web site and in order for it to consume NuGet, it uses .dll.refresh files to pull the dlls from the packages/{package name}/net35 folder.

The facts:

  • This is being built using TFS 2010 and MSBuild
  • I have three build servers and this doesn't work on only one of them.
  • I have other .refresh files and the refresh functionality works for every one of those dlls except Newtonsoft dll (on the affected build agent).
  • The builds are set to always clean the workspace
  • I use the same build definition to run the build on all agents.
  • I've regenerated the .refresh file with visual studio so it's probably not an issue with the file's encoding
  • After downloading the files from TFS, the workspace is the same between the non-working and working build agents.

In the working build log, it copies Newtonsoft over and in the non-working build log it doesn't.

Working build log:

Build started 6/22/2016 5:06:46 PM.

Project "D:\Builds\76{team-project-here}{web-site-name-here}\Sources{web-site-name-here}.sln" on node 1 (default targets).

ValidateSolutionConfiguration:

Building solution configuration "Debug|Mixed Platforms".

Project "D:\Builds\76{team-project-here}{web-site-name-here}\Sources{web-site-name-here}.sln" (1) is building "D:\Builds\76{team-project-here}{web-site-name-here}\Sources{web-site-name-here}.metaproj" (2) on node 1 (default targets).

Build:

Copying file from "D:\Builds\76{team-project-here}{web-site-name-here}\Sources\packages\AWSSDK.1.5.20.0\lib\AWSSDK.dll" to "{web-site-name-here}\Bin\AWSSDK.dll".

Copying file from "D:\Builds\76{team-project-here}{web-site-name-here}\Sources\packages\Web.Clients.ClientMarginService.1.0.1.28\lib\net35\ClientMarginService.Common35.dll" to "{web-site-name-here}\Bin\ClientMarginService.Common35.dll".

Copying file from "D:\Builds\76{team-project-here}{web-site-name-here}\Sources\packages\Hcas.Client.1.8.0.1\lib\net35\Hcas.Client.dll" to "{web-site-name-here}\Bin\Hcas.Client.dll".

Copying file from "D:\Builds\76{team-project-here}{web-site-name-here}\Sources\packages\FMS.FundsWireBalancing.1.0.3\lib\FMS.FundsWireBalancing.dll" to "{web-site-name-here}\Bin\FMS.FundsWireBalancing.dll".

Copying file from "D:\Builds\76{team-project-here}{web-site-name-here}\Sources\packages\ProductMargin.Contracts.1.9.9.0\lib\net35\ProductMargin.Contracts3.5.dll" to "{web-site-name-here}\Bin\ProductMargin.Contracts3.5.dll".

Copying file from "D:\Builds\76{team-project-here}{web-site-name-here}\Sources\packages\Web.Clients.Affiliates.Common.1.0.6.0\lib\net35\Web.Clients.Affiliates.Common.dll" to "{web-site-name-here}\Bin\Web.Clients.Affiliates.Common.dll".

Copying file from "D:\Builds\76{team-project-here}{web-site-name-here}\Sources\packages\Web.Clients.Affiliates35.1.0.4.0\lib\net35\Web.Clients.Affiliates35.dll" to "{web-site-name-here}\Bin\Web.Clients.Affiliates35.dll".

Copying file from "D:\Builds\76{team-project-here}{web-site-name-here}\Sources\packages\Web.Clients.ChangeOfOwnership.Common.1.0.7.0\lib\net35\Web.Clients.ChangeOfOwnership.Common.dll" to "{web-site-name-here}\Bin\Web.Clients.ChangeOfOwnership.Common.dll".

Copying file from "D:\Builds\76{team-project-here}{web-site-name-here}\Sources\packages\Web.Clients.ChangeOfOwnership35.1.0.4.0\lib\net35\Web.Clients.ChangeOfOwnership35.dll" to "{web-site-name-here}\Bin\Web.Clients.ChangeOfOwnership35.dll".

Copying file from "D:\Builds\76{team-project-here}{web-site-name-here}\Sources\packages\Web.Clients.ClientMarginService.1.0.1.28\lib\net35\Web.Clients.ClientMarginService35.dll" to "{web-site-name-here}\Bin\Web.Clients.ClientMarginService35.dll".

Copying file from "D:\Builds\76{team-project-here}{web-site-name-here}\Sources\packages\Web.Clients.HMS.Common.1.1.0.31\lib\net35\Web.Clients.HMS.Common.dll" to "{web-site-name-here}\Bin\Web.Clients.HMS.Common.dll".

Copying file from "D:\Builds\76{team-project-here}{web-site-name-here}\Sources\packages\Web.Clients.HMS35.1.1.0.35\lib\net35\Web.Clients.HMS35.dll" to "{web-site-name-here}\Bin\Web.Clients.HMS35.dll".

Copying file from "D:\Builds\76{team-project-here}{web-site-name-here}\Sources\packages\EnterpriseServices.MarginServiceClient.2.0.0.6\lib\net35\MarginServiceDataContracts.dll" to "{web-site-name-here}\Bin\MarginServiceDataContracts.dll".

Copying file from "D:\Builds\76{team-project-here}{web-site-name-here}\Sources\packages\EnterpriseServices.MarginServiceClient.2.0.0.6\lib\net35\MarginServiceProxy-35.dll" to "{web-site-name-here}\Bin\MarginServiceProxy-35.dll".

Copying file from "D:\Builds\76{team-project-here}{web-site-name-here}\Sources\packages\Newtonsoft.Json.7.0.1\lib\net35\Newtonsoft.Json.dll" to "{web-site-name-here}\Bin\Newtonsoft.Json.dll".

Copying file from "D:\Builds\76{team-project-here}{web-site-name-here}\Sources\packages\Newtonsoft.Json.7.0.1\lib\net35\Newtonsoft.Json.xml" to "{web-site-name-here}\Bin\Newtonsoft.Json.xml".

C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_compiler.exe -v /{web-site-name-here} -p {web-site-name-here}\ -u -f -d -fixednames D:\Builds\76{team-project-here}{web-site-name-here}\Binaries_PublishedWebsites{web-site-name-here}\

Non-working build log:

Build started 6/22/2016 5:06:46 PM.

Project "D:\Builds\84{team-project-here}{web-site-name-here}\Sources{web-site-name-here}.sln" on node 1 (default targets).

ValidateSolutionConfiguration:

Building solution configuration "Debug|Mixed Platforms".

Project "D:\Builds\84{team-project-here}{web-site-name-here}\Sources{web-site-name-here}.sln" (1) is building "D:\Builds\84{team-project-here}{web-site-name-here}\Sources{web-site-name-here}.metaproj" (2) on node 1 (default targets).

Build:

Copying file from "D:\Builds\84{team-project-here}{web-site-name-here}\Sources\packages\AWSSDK.1.5.20.0\lib\AWSSDK.dll" to "{web-site-name-here}\Bin\AWSSDK.dll".

Copying file from "D:\Builds\84{team-project-here}{web-site-name-here}\Sources\packages\Web.Clients.ClientMarginService.1.0.1.28\lib\net35\ClientMarginService.Common35.dll" to "{web-site-name-here}\Bin\ClientMarginService.Common35.dll".

Copying file from "D:\Builds\84{team-project-here}{web-site-name-here}\Sources\packages\Hcas.Client.1.8.0.1\lib\net35\Hcas.Client.dll" to "{web-site-name-here}\Bin\Hcas.Client.dll".

Copying file from "D:\Builds\84{team-project-here}{web-site-name-here}\Sources\packages\FMS.FundsWireBalancing.1.0.3\lib\FMS.FundsWireBalancing.dll" to "{web-site-name-here}\Bin\FMS.FundsWireBalancing.dll".

Copying file from "D:\Builds\84{team-project-here}{web-site-name-here}\Sources\packages\ProductMargin.Contracts.1.9.9.0\lib\net35\ProductMargin.Contracts3.5.dll" to "{web-site-name-here}\Bin\ProductMargin.Contracts3.5.dll".

Copying file from "D:\Builds\84{team-project-here}{web-site-name-here}\Sources\packages\Web.Clients.Affiliates.Common.1.0.6.0\lib\net35\Web.Clients.Affiliates.Common.dll" to "{web-site-name-here}\Bin\Web.Clients.Affiliates.Common.dll".

Copying file from "D:\Builds\84{team-project-here}{web-site-name-here}\Sources\packages\Web.Clients.Affiliates35.1.0.4.0\lib\net35\Web.Clients.Affiliates35.dll" to "{web-site-name-here}\Bin\Web.Clients.Affiliates35.dll".

Copying file from "D:\Builds\84{team-project-here}{web-site-name-here}\Sources\packages\Web.Clients.ChangeOfOwnership.Common.1.0.7.0\lib\net35\Web.Clients.ChangeOfOwnership.Common.dll" to "{web-site-name-here}\Bin\Web.Clients.ChangeOfOwnership.Common.dll".

Copying file from "D:\Builds\84{team-project-here}{web-site-name-here}\Sources\packages\Web.Clients.ChangeOfOwnership35.1.0.4.0\lib\net35\Web.Clients.ChangeOfOwnership35.dll" to "{web-site-name-here}\Bin\Web.Clients.ChangeOfOwnership35.dll".

Copying file from "D:\Builds\84{team-project-here}{web-site-name-here}\Sources\packages\Web.Clients.ClientMarginService.1.0.1.28\lib\net35\Web.Clients.ClientMarginService35.dll" to "{web-site-name-here}\Bin\Web.Clients.ClientMarginService35.dll".

Copying file from "D:\Builds\84{team-project-here}{web-site-name-here}\Sources\packages\Web.Clients.HMS.Common.1.1.0.31\lib\net35\Web.Clients.HMS.Common.dll" to "{web-site-name-here}\Bin\Web.Clients.HMS.Common.dll".

Copying file from "D:\Builds\84{team-project-here}{web-site-name-here}\Sources\packages\Web.Clients.HMS35.1.1.0.35\lib\net35\Web.Clients.HMS35.dll" to "{web-site-name-here}\Bin\Web.Clients.HMS35.dll".

Copying file from "D:\Builds\84{team-project-here}{web-site-name-here}\Sources\packages\EnterpriseServices.MarginServiceClient.2.0.0.6\lib\net35\MarginServiceDataContracts.dll" to "{web-site-name-here}\Bin\MarginServiceDataContracts.dll".

Copying file from "D:\Builds\84{team-project-here}{web-site-name-here}\Sources\packages\EnterpriseServices.MarginServiceClient.2.0.0.6\lib\net35\MarginServiceProxy-35.dll" to "{web-site-name-here}\Bin\MarginServiceProxy-35.dll".

C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_compiler.exe -v /{web-site-name-here} -p {web-site-name-here}\ -u -f -d -fixednames D:\Builds\84{team-project-here}{web-site-name-here}\Binaries_PublishedWebsites{web-site-name-here}\

1

1 Answers

0
votes

I ended up figuring this out. I turned on Diagnostic debugging on my build and then searched the resulting log for all instances of the word Newtonsoft. From there, I learned that it skipped the file copy requested by the .dll.refresh file due to the fact that it had found a different verison of Newtonsoft.dll in the GAC. So the fix was to remove the old instance of Newtonsoft.dll from the GAC.