Каждая версия имеет дополнительные функции и, возможно, содержит изменения CLR.Если вы используете какую-либо из этих функций, вы не сможете работать на уменьшенной версии.
. Версия системы .NET довольно грязная.Вы не можете получить много от целых чисел версии сами.Но в этом нет необходимости.Что важно, так это последовательность версий.
Существует три эпохи версий: 1.x, 2-3.x, 4.x.Сборки должны быть скомпилированы для одного из них и могут быть загружены только туда.Для большинства людей сейчас важен только 4.x.
Вы можете ориентироваться на версии более низкого уровня в Visual Studio.Тогда компилятор позволит вам использовать только API, доступные в этой версии.Таким образом, вы можете быть уверены, что сможете работать с номерами версий более низкого уровня.Это не на 100% безопасно, поскольку произошли изменения в поведении.Но совместимость, как правило, очень высока с .NET.
Для приложений, которые вы развертываете в собственной инфраструктуре, я настоятельно рекомендую синхронизировать все машины разработчика и производства с одной версией .NET, если это возможно.Таким образом, у вас не будет проблем с совместимостью, и вы можете игнорировать весь вопрос о версиях.