so I am in a position where I doubt my solution to the following problem: - we are developing a wpf desktop application with c# and have a decent plugin system. This increases the libraries we have in the system (multiple git repositories, multiple libraries). The libraries are then packaged to our local nuget server. The problem is that we need to upgrade version and call nuget package even for local builds & tests. in the end a library could have 100 version numbers before a feature is done.

I have come up with an idea that we would have 2 different nuget servers. one for release builds of the libraries and one for debug builds. The problem would be though that the debug versions would be much higher than the release builds. This could be done with jenkins release build of the complete system but it would increase the release time astronomically because the main project needs to register these libraries (services) by referencing them with a version.

the libraries itself have dependencies with other libraries or private libraries and then they are registered with an IoC container. This gives us an extreme advantage. I dont want to lose this flexibility as our system is extremely customizable.

so my question is for you guys: how do you handle this dilemma ? how do you work with hundreds of libraries (Services) and their debug & release builds ?

  • Why would you need to go through nuget for every build? Why not have a local reference while you develop. Once you fix a bug/add a feature you deploy it to nuget. – fstam Nov 9 at 16:24

If I understand your problem correctly, you can solve it by using a single nuget feed and prerelease version numbers.

Nuget supports Semver 2.0.0, this means you can publish your debug or development versions of the packages with an incrementing postfix, like: 1.0.1-debug1, 1.0.1-debug2, etc (or 1.0.1-debug001, 1.0.1-debug002, for better sorting).

Then, when you publish the release version 1.0.1, nuget will understand that it's a higher version than the prerelease ones and allow you to upgrade all usages.

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.