4

We use Ivy for dependency management within our office. It resolves our list of dependencies for any of list of projects and does it very well too, to be fair. It also publishes released dependencies back into our shared Ivy repository for future inclusion in other projects.

But... it has a reliance on Java and we see this as a minor drawback that if we could erradicate, that would be fantastic.

So, is there a .Net equivalen of Ivy? I've found this website on CodeHaus, which looked SOOO promising, but there's zero content.

We understand that NuGet can do private repositories, but due to the sheer amount of code that we have in-house, it would be a massive job to convert/migrate to using NuGet to resolve/publish our dependencies in the same way as we do with Ivy.

Brett Rigby
  • 6,101
  • 10
  • 46
  • 76

3 Answers3

4

Dependency management, as a concept, is very new in .NET and the emerging solution appears to be NuGet.

I'd recommend installing Nexus which supports local hosting of NuGet repositories. It would also be worth considering using Nexus to manage the contents of your ivy repository (ivy has built-in support for Maven repositories).

Update

Ivy has a command-line client which could just be invoked from your msbuild script:

Not exactly a .Net solution but a work-able alternative to switching over completely to NuGet.

Community
  • 1
  • 1
Mark O'Connor
  • 76,015
  • 10
  • 139
  • 185
  • @MarkOConnor - thanks, but that's exactly what I'm doing at present, as in, we're having to use Java to call off to our repository using Ivy; it's the Java part that I'd like shot of. – Brett Rigby Oct 16 '12 at 08:01
1

There's a young open source project that claims to be an alternative to Maven for .Net. Here's the link: http://byldan.codeplex.com/

Don't know if it's stable though.

george.zakaryan
  • 960
  • 1
  • 6
  • 18
1

We're a .NET shop and we're using ivy. When we started we tried using ivy via java calls, but switched to calling out to ant so that we could use the built-in ivy tasks directly. We did that because the ivy tasks gave us more options.

Our build scripts are written in nant. Nant then calls out to ant and passes several properties so that it can execute the ivy tasks needed. I'm sure the same thing could be done with MSBuild.

<exec program="C:\ant\1.8.2\bin\ant.bat" commandline="-buildfile ${build.dir}\${ivy.tasks.build.file} -verbose -Divy.properties.file=${ivy.properties} retrieve" verbose="true"></exec>

It feels a bit quirky having to call ant from nant, but it works well. Plus, ivy is contained in its own build file doing exactly what it was meant to do (dependency management) and nothing else.

drohm
  • 226
  • 2
  • 15