I'm making an open source C# library (http://github.com/eteeselink/fakethat if you must). Like is fashionable these days, I plan to spread it via NuGet.My library depends on another library (Castle.Core). Before the NuGet days, I'd use a tool such as ILMerge to merge my library and Castle.Core into a single assembly, so that the distribution is simpler. This significantly increases the size of my assembly (from 50kb to 450kb), but it's only a single DLL, which is handy for users.Now that there's NuGet, however, I can simply add Castle.Core as a dependency and NuGet will resolve it for my users. This has a few advantages:It is simpler and less error prone for meIf my users use another library that depends on Castle.Core, we save disk spaceIt somehow feels more honest - all the hard work is done by Castle.Core, all I added is a pretty API. There's a few disadvantages, too, however:If Castle.Core somehow gets removed from NuGet, my library will stop workingIf someone still wants to use my library without NuGet, it's a bigger hassle because multiple DLLs need to be copied aroundIf a developer looks through the list of project references, she will see some weird Castle.Core reference that she never remembers having added. This might be confusing.What would you do?
Use ILmerge for NuGet libraries?
c#;.net