I resolved this issue by:
- Adding the binaries for the new version to a new folder.
- Restarting the config instances using the new binaries so that the data instances could continue to run with the old binaries
- Once all of the config servers were upgraded I created yet another folder in which to put the same new binaries from step 1
- I then restarted the data instances using these new binaries
- Now the config instances and data instances on the same server are using the new binaries but in different folders so that it will be easier to upgrade them for the next release
Note that there are other steps involved with the upgrade, and these are specified in the release notes which you should always follow. However, this is how I dealt with the shared binary problem which is not directly addressed in the release notes.
A lot of the tutorials seem to use a single binary for data and config instances on a single server but this is problematic when it's time to upgrade. I'd suggest always using separate binaries for your config and data instances.