I am trying to implement CI for one of my projects that generates a NuGet package which is published to our private NuGet repository. Obviously, for dependent applications to see the new packages as upgrades, they must have higher version numbers. To achieve this, we are letting MS Build append the build number to the end of the package version using the AssemblyInformationalVersionAttribute. While this seems to work great, the build number will recycle when it reaches 65535 meaning it is possible to have builds with the same major, minor and patch version but a smaller build number that are actually newer than those with a larger build number.
We are using VS 2015 (so MS Build 14), Git for source control and Jenkins to run our build jobs in an enterprise environment where there are a large number of other jobs running.
I'm looking for best practices and solutions for managing NuGet package versioning in a CI process given these constraints.