はじめに
VisualStudio2019でWeb APIを作成しようとしたとき、コントローラーを作ろうと思ったら以下のエラーが出て作成ができませんでした。
これの解決方法を備忘録として書いておきます。
環境
Windows10
VisualStudio2019
1. エラーの原因
とりあえず出たエラーに書いてある文言「パッケージの復元に失敗しました。のパッケージの変更をロールバックします。」をコピペして調べましたが、どれをやっても解決せず、、、
原因は「コードジェネレータを実行中にエラーが発生しました。」の方にありました。
VisualStudioがコントローラをスキャフォールドで作成してくれる時には、
Microsoft.VisualStudio.Web.CodeGeneration.Design
というパッケージを使います。(使うものはほかにもあります。)
コントローラを作成しようとすると、パッケージマネージャであるNuGetが勝手にこれらのパッケージをダウンロードしてきてくれて、それを使ってくれます。
そのダウンロードがなぜかできていなかったのが原因でした。
2. 解決策
-
上部のメニューからツール→NuGetパッケージマネージャ→パッケージマネージャの設定を選択して、設定を開く
-
パッケージソースを選択
ここにパッケージのダウンロード元のURLが記述されているはずなのに記述されていなかったことが原因でした。 -
右上のプラスボタンから新規追加し、
- 名前:nuget.org
- ソース:https://api.nuget.org/v3/index.json
と記述することで完了です。
これによってダウンロード元が指定され、ここからパッケージを持ってきてくれます。
さいごに
つい最近VisualStudioをインストールしたのですが、普通最初からURL指定されていませんか?
VisualStudioを使っている人が全員この作業をしたとは思えない。
原因に気づくまでにかなり時間がかかってしまいましたが、解決してよかったです。