Managing Team Builds

Discussion of open issues, suggestions and bugs regarding ADO.NET provider for Oracle
Post Reply
rmagruder
Posts: 47
Joined: Thu 26 Jun 2014 17:12

Managing Team Builds

Post by rmagruder » Thu 22 Oct 2015 16:33

Getting this error doing a TFS 2013 Team Build. It's a web service which uses a package, which in turn uses DevArt DotConnect:

packages\MyLibrary.1.0.0.13\lib\net45\MyLibrary.dll: Assembly 'MyLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' uses 'Devart.Data.Oracle, Version=8.4.225.0, Culture=neutral, PublicKeyToken=09af7300eec23701' which has a higher version than referenced assembly 'Devart.Data.Oracle, Version=8.4.201.0, Culture=neutral, PublicKeyToken=09af7300eec23701'

The build box has 201 installed on it. However, both the service and the nuget library reference 225 of DevArt. You might say, "well, install 225 on the build box". However, we are moving away from GAC-deployments of DevArt for runtime because we don't want any breaks of various projects which might be running earlier versions of DotConnect, so we are deploying the DevArt DLL's in the 'bin' folder of our deployments by setting Copy Local = True.

So, I'm trying to figure out what to do here. Do we:
1) Update the build box -- and then what happens when we go back and build a product using an older version of dotConnect on the build box?
2) Uninstall DevArt from build box, and check in DevArt DLL's to our Git repository that TFS pulls from? UGH! (both from binaries, and because it will probably break builds of products using prior version of Devart).

I feel like we're in DLL hell again. We have many services, possibly using different versions of DevArt, and we need TFS build to build them on our build box. Is there a suggested happy path here?

Shalex
Site Admin
Posts: 9543
Joined: Thu 14 Aug 2008 12:44

Re: Managing Team Builds

Post by Shalex » Fri 23 Oct 2015 11:13

Have you added the <publisherPolicy apply="no"/> entry for the Devart.* references in *.config of your application?

This should make CLR to ignore policy.*.Devart.* files from GAC 2.0 (\Windows\assembly\GAC_MSIL\) and GAC 4.0 (\Windows\Microsoft.NET\assembly\GAC_MSIL\).

Post Reply