ASP.NET Coreでスキャフォールディングでエラーが発生する件

スポンサーリンク

ASP.NET Coreでスキャフォールディングすると’The specified framework ‘Microsoft.NETCore.App’,version ‘1.1.2’ was not found.’とエラーが出てスキャフォールデングできなかった現象を解決できたので備忘として記載しておきます。

環境はVS2017でASP.NET COREのVersionは1.1です。

スキャフォールディングすると出るエラーは下記のようなエラーです。DOTNET COREの特定のVersionが見つかんないといわれてしまいます。ここではMicrosoft.NETCore.Appの1.0.4で1.1.1はインストールされているが1.1.2が見当たらないのでインストールしてくださいといわれています。

インストールの情報を確認すると現状で最新のSDK1.0.4がインストールされているので問題ないと思ってました。

インストールフォルダを確認してもちゃんとインストールされています。

何がいけないんだろうなぁとVS2017のパッケージコンソールで「dotnet –version」コマンドを実行してversionを確認したら「1.0.1」と表示されました。インストールしてある最新のSDKは1.0.4なのにおかしいなぁと。そこでエラー画面を見直して気づいたのですが(x86)の表記があったのでどうやら32bitのSDKを参照しているということに気づきました。インストールの一覧でも.NET Core SDK 1.0.1(x86)があったのでVS2017は64bitのほうではなく以前インストールした32bitのほうを参照しているわけです。

環境変数を確認したところ下記のようになっていました。

C:\Program Files (x86)\dotnet\;C:\Program Files\dotnet\;

環境変数の一部の抜粋ですが見て解るとおり(x86)が先にきています。ここから「C:\Program Files (x86)\dotnet\;」を削除して保存しなおします。その後VS2017を再起動して「dotnet –version」を実行し「1.0.4」が表示されスキャフォールディング出来るようになりました。過去にインストールした古いSDKの参照が優先されていたようです。一応古いSDKをアンインストールすることでも現象の解決は出来るようです。古いSDKを残したい場合は環境変数を変更することで対応していくのがいいと思います。

他の理由で出来ない場合はまた別途調査が必要になりますがとりあえずVersion差異による問題は環境変数を修正するか古いSDKをアンインストールかで解決できます。

コメント