ну вот щас на ум приходит такой вариант: оформить dotnet-sdk-latest + dotnet-sdk-3.1 и тд, при этом все старые версии dotnet-sdk-xxx зависят от dotnet-sdk-latest. При распаковке dotnet-sdk-xxx я тупо удалю из него команду dotnet, чтобы доступна была только свежая версия из dotnet-sdk-latest