特定のバージョンの .Net SDK を必要とする .Net アプリケーションを構築しようとしています。"version": "2.2.107"
最近の apt アップデートにより、インストールされている .Net SDK バージョンが最新のバージョンに更新されました2.2.300
。
同じ SDK の複数のバージョンをインストールすることは可能ですか?
ここに示すように、複数のマイナーSDKバージョンをインストールできます。
$ dotnet --list-sdks
2.1.700 [/usr/share/dotnet/sdk]
2.2.300 [/usr/share/dotnet/sdk]
このアプリケーションをビルドするためだけに、現在インストールされているバージョンをアンインストールしなくて済むようにしたいと考えています。
ちなみに、Microsoft のダウンロード ページには特定のバージョンをインストールするための手順が記載されていませんが、これはバグだと思います。実際にインストールしたいバージョンをクリックしてそのページにアクセスした場合でも、表示されるコマンドでは常に最新バージョンがインストールされます。
https://dotnet.microsoft.com/download/linux-package-manager/ubuntu18-04/sdk-2.2.107
答え1
APT や RPM などのすべてのパッケージ マネージャーは、パッケージの最新バージョン (および最新バージョンのみ) を扱います。これは .Net Core パッケージにも適用されるため、古いバージョンのパッケージと新しいバージョンのパッケージを同時に使用することはできません。Microsoft は、パッケージ マネージャーを使用せずに .Net Core バイナリ (.Net Core、ASP.NET Core SDK およびランタイム) をインストールするためのスクリプトを用意しています。このスクリプトはここからダウンロードできます。
https://dot.net/v1/dotnet-install.sh
このスクリプトを使用すると、インストールするバージョン (オプション -v または –version) とバイナリをインストールする場所 (オプション -i または –install-dir) を指定できます。
- 「apt remove dotnet-」で既存のパッケージをアンインストールします。
- 「—version」オプションで指定された選択したバイナリを同じフォルダー (/usr/share/dotnet) にインストールします。
このスクリプトは非常に洗練されており、さらに多くのオプションを指定して実行できます。これについて読むには、最初の実行時に「—help」を指定してください。注意: スクリプトはインストール フォルダーを現在の $PATH 環境変数に追加しますが、シェルのプロファイル ファイルには追加しません。これは手動で行う必要があります。
答え2
問題は、新しいバージョンをインストールする前に古いバージョンをアンインストールするパッケージ マネージャーにあります。Microsoft が提供する botnet-install スクリプトを使用して、パッケージ マネージャーから独立して dotnet バイナリ パッケージを取得してインストールできます。すべての手順は、こちらで確認できます。 https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-install-script