This was more of a question of others workflows when it comes to referencing external dlls. I'm currently having an issue of another addin that is referencing an older version of a 3rd-party library (its CTC's tool that are referencing an old version of MahApps.Metro if you were curious).
I was looking through some of Jeremy's post and came across ILMerge. I am able to run the merge through my solution now to merge the reference assemblies. Right now I am at the point of just merging these in the current "Revit Addin" solution, so there is now a Merged_References.dll and all of the individual references .dlls. But this makes me start to think about referencing this new "Solution_References.dll" file back in to my active solution. Do other developers usually split the references out to another Solution, build the "Solution_References.dll" file and then replace that new, combined dll with the original references back in the "Revit Addin" Solution.
Or is there a different method or something less complex to achieve using multiple versions of the 3rd-party library in Revit? Or is the real solution to merge everything and start to split out in to different solutions? Thanks
Just looking at the title of your new thread, I was saying things to myself like 'this topic is turning into a very frequently asked question recently', etc.
I am very glad to see that you have already researched in depth and implemented a solution that works.
You appear to have made significant progress since the comment you shared yesterday.
I will be very glad if other experienced developers pitch in and share their experiences in this area as well.
Regardless of whether they do or not, I am sure that just the description of where you are currently at is of great value to others who run into this kind of challenge.
I am very much looking forward to the continuation of this discussion.
Thank you for raising it.
Cheers,
Jeremy
I use ILMerge to bundle external libraries including their references into one versioned DLL each, for instance ThirdPartyStuff_1.76.dll contains version 1.76 of „third party stuff“ including possible dependencies. This can be used without problems alongside other versions different plugins may use, at least unless somebody coincidentally names another version or DLL in the same way (which is highly unlikely).
side note: it is unbelievable that in 2020, after years of progress made in the .Net environment, dll hell is still an issue.
Can't find what you're looking for? Ask the community or share your knowledge.