endokのブログ

IT・プログラミングネタ

AzureFunctionsをVisualStudioでデバッグ実行するとCould not load file or assembly Microsoft.AspNetCore.Mvc.Abstractions, Version=2.0.2.0 エラーになる

細かいトラブルシュートネタ。

環境

  • VisualStudio 2017 15.6.7

現象

VisualStudioからAzureFunctions v2(.NET Core)プロジェクトを新規作成する。

この時点では下記の警告が出ているものの、デバッグ実行は問題なく実行可能。

警告	NU1701	パッケージ 'Microsoft.AspNet.WebApi.Client 5.2.2' はプロジェクトのターゲット フレームワーク '.NETStandard,Version=v2.0' ではなく '.NETFramework,Version=v4.6.1' を使用して復元されました。このパッケージは、使用しているプロジェクトとの完全な互換性がない可能性があります。

この警告を解消しようと、とりあえずNuGetパッケージを更新することに。
[ツール]→[NuGetパッケージマネージャー]→[ソリューションのNuGetパッケージの管理]からMicrosoft.NET.Sdk.Functionsを更新。
警告が消えて満足したものの、デバッグ実行をしてみると、下記エラーが発生するようになってしまった。

f:id:endok:20180827224217p:plain

[2018/08/27 13:24:30] Reading host configuration file 'C:\Users\endok\source\repos\FunctionApp1\FunctionApp1\bin\Debug\netstandard2.0\host.json'
[2018/08/27 13:24:30] Host configuration file read:
[2018/08/27 13:24:30] {
[2018/08/27 13:24:30] }
[2018/08/27 13:24:31] ScriptHost initialization failed
[2018/08/27 13:24:31] System.Private.CoreLib: Could not load file or assembly 'Microsoft.AspNetCore.Mvc.Abstractions, Version=2.0.2.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. Could not find or load a specific file. (Exception from HRESULT: 0x80131621). System.Private.CoreLib: Could not load file or assembly 'Microsoft.AspNetCore.Mvc.Abstractions, Version=2.0.2.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'.
Listening on http://localhost:7071/
Hit CTRL-C to exit...
Object reference not set to an instance of an object.

対応

下記issueがドンピシャの内容で、Microsoft.NET.Sdk.Functionsのバージョンが1.0.7以降だとこのエラーが出てしまうとのこと。
1.0.6に戻すことでエラーは解消。
他にも似たようなケースがあるようだが、とりあえず1.0.6以下にダウングレードしておくのが良さそうな模様。

github.com