2017-04-14 1 views
2

Visual Studio 2017のASP.NET Coreアプリケーションでスカフォールド機能を使用しようとしています.MyCコントローラを使用して、Entity Frameworkを使用しています。私はdbcontextと移行をセットアップし、update-databaseを使ってデータベースを作成しました。私は「最小」骨格オプションを選択しました。私は両方のMicrosoft.VisualStudio.Web.CodeGeneration必ず行っているVS 2017でスキャフォールディングを使用する際のエラー

Error There was an error running the selected code generator: 'Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.VisualStudio.Web.CodeGeneration.Utils, Version=1.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified. at Microsoft.VisualStudio.Web.CodeGeneration.Design.Program.Main(String[] args)'

:モデルとdbcontextを選択した後、私は[OK]をクリックしたときに、私はそれが足場であると言って、ステータスダイアログが、エラーとそのダイアログ終了を取得します。 UtilsとMicrosoft.VisualStudio.Web.CodeGeneration.Designは私のプロジェクトではパッケージとして参照されていますが、私はそれらが適切な場所であるとはっきりしていません。これは、VS2017コミュニティがプリインストールされた最新のアップデート、サードパーティーのアドインなどがない新しいAzure VMです。このエラーは、空のビューを足場にしているので、EFとはまったく関係がありません。

スキャフォールディング機能を使用するにはどうすればこの問題を解決できますか?

答えて

0

私は同じ問題に遭遇し、ここで答えを見つけようとしました。私はそれを理解するのに数時間を要しましたが、他の誰かが役に立つと思うかもしれません。

号/背景: 偶数コード生成utilsの及び設計のパッケージを追加VS2017からコントローラを生成する際に、エラーが残っています。 VS2017に切り替える前に、コマンドラインからプロジェクトを作成し、VSコードで作業していました。 は当初、私はコントローラを追加、次のエラーを得た:

enter image description here

このエラーを解決するためのプロジェクト/ binに/デバッグのI単純にコピーした内容を/ binに/ MCD /デバッグ

を投影した後エラーは消え去った。そしてそれは他のエラーの問題でもありました。上記のフォルダの内容をコピーした後、両方のパッケージを追加しました。その後のビルドでは、このフォルダの内容は自動的に更新されないため、エラーが発生します。

解決策: binフォルダとobjフォルダを削除して再構築してください。次に、/ bin/Debugの内容を/ bin/MCD/Debugにコピーします(またobjフォルダも同様です)。

これは私の問題を解決しました。

+0

エラーメッセージが異なるため、問題と解決方法が異なります。 – Serge

1

残念ながら、これは私の問題を解決しませんでした。しかし、試してみる価値がある。

私はMicrosoft.VisualStudio.Web.CodeGeneration.Utilsをロードできないというエラーが発生し、VS 2015でプロジェクトを読み込むコントローラを足場、それを保存して、VS 2017

+0

.NET Coreプロジェクトを開くためにVS 2015のトーリングをインストールする必要がありましたか? – Serge

+1

VS2017にアップグレードする前に.netのコアツールをインストールしていたので、VS2015がツールなしで開かれているかどうかわかりません。私は思っていません。 – Xanthalas

+0

したがって、ASP.NET CoreプロジェクトはVS 2015で作成されましたか?鉱山はVS2017で作成されているので、VS2015でも開けません... – Serge

0

に戻って切り替えることによって、それを解決しましたアセンブリは、通常、NuGetパッケージのキャッシュまたはプロジェクトのパッケージのバージョンの不一致のために発生します。

.csprojファイルを表示できますか?

しようとするいくつかのこと:

  1. Microsoft.VisualStudio.Web.CodeGeneration.Designが正しいバージョンがある足場パッケージのパッケージ参照を確認します 。 ASP.NET Core 1.0などでは1.0.xです。

  2. 直接参照してはならない他の足場パッケージは、 です。 Microsoft.VisualStudio.Web.CodeGeneration.Utils b。 Microsoft.VisualStudio.Web.CodeGeneration.Templating c。 Microsoft.VisualStudio.Web.CodeGeneration.EntityFrameworkCore d。 Microsoft.VisualStudio.Web.CodeGeneration.Core e。 Microsoft.VisualStudio.Web.CodeGeneration f。 Microsoft.VisualStudio.Web.CodeGeneration.MsBuild g。 Microsoft.VisualStudio.Web.CodeGeneration.Contracts h。 Microsoft.VisualStudio.Web.CodeGenerators.Mvc i。 Microsoft.VisualStudio.Web.CodeGeneration.Tools - この1つはDotNetCliToolReference

  3. クリアローカルNuGetキャッシュする必要があります。

  4. プロジェクトのbinフォルダとobjフォルダをクリアして、プロジェクトを復元します。
0

全く同じ問題がありました。ビジュアルスタジオインストーラを起動し、ASP.netコア開発パッケージを選択して完全修復しました。今はすべてが機能しています。

関連する問題