答え:Azure Functions Core Tool Version Manager (funcvm) を使います。
Azure Functions Core Tool はほとんど Ver.4 に対応済みになってきているので、当分バージョンを切り替えて使う必要ないかもしれませんが、将来またこのツールのお世話になる可能性があるかもしれないので残しておきます。
事前準備
まず、このツールをインストールする前に既に Azure Functions Core Tool をインストールしている場合は全てアンインストールする必要があります。
インストール
funcvm というツールを使います。当時 Azure Functions の開発チームの中の人だった人が作ったものです。
ただ、このツールは Node.js で動くので、環境に Node.js がインストールされていない場合は先に Node.js のインストールが必要です。
Node をインストールしたら、次のコマンドでインストールします。
npm install -g @anthonychu/funcvm
使い方
Azure Functions Core Tool インストール
まずは funcvm を使って Azure Functions Core Tool をインストールする必要があります。
funcvm install <version>
Azure Functions Core Tool のバージョン番号はこちらで確認します。
Azure Functions Core Tool Releases
例えば、バージョン4.0.4590をインストールする場合はこうなります。
funcvm install 4.0.4590
インストールされた Azure Functions Core Tool の一覧
$ funcvm list
3.0.3904
3.0.4425
4.0.3971
4.0.4426
4.0.4590 (global)
バージョンの切り替え
$ funcvm use 3.0.4425
Using 3.0.4425
特定ディレクトリでの実行時にバージョンを指定する
.func-version という名前のファイルを作り、ファイルにバージョン番号を書いておくだけで、そのディレクトリでの func コマンド実行は指定したバージョンになります。
(@horihiroさん、ご指摘ありがとうございます)
3.0.4425
Azure Functions Core Tool のアンインストール
funvm remove <version>
funvm 自体のバージョンを確認
funvm は npm のツールとしてグローバルインストールされていますので、次のコマンドで確認します。
$ npm list -g
どこにインストールされたの?
IDEなどのツールによっては、Azure Functions Core Tool の場所をピンポイントで指定しなければならないことがあります。
funcvm は Windows の場合は ユーザーのホームディレクトリに .funcvm\Download というディレクトリを作成し、そこに各バージョンの Azure Functions Core Toolを保持します。
必要な場合は各ディレクトリ内部にある func.exe を 指定すればOKです。