モデルから新しいビューを作成しています。
エラーメッセージは
エラー
選択したコードジェネレーターの実行中にエラーが発生しました:
'パスへのアクセス
'C:\ Users\XXXXXXX\AppData\Local\Temp\SOMEGUID\EntityFramework.dll'は拒否されました '。
管理者としてVS 2013を実行しています。
MvcScaffoldingはコマンドラインでVS 2013 RCと互換性がありますか? を見ましたが、これで問題は解決しなかったようです。
VS2013 C#5 MVC5真新しいプロジェクトがVS 2013で開始されました。
問題は、破損したweb.configおよびパッケージディレクトリにありました。
新しいプロジェクトを作成し、コードファイルを新しい作業プロジェクトにコピーしました。後で戻って、構成ファイルの差分とプロジェクト自体のフォルダー差分を実行しました。
問題は、更新によって大量の更新アーティファクトが構成ファイルに大量に入れられ、最終的に消去されてしまうことでした。
2番目の問題は、古いプロジェクトが、Nugetパッケージのアプリケーションでワイプされるはずの古いDLLにもハングアップし続けることでした。そのため、objフォルダーとbinフォルダーを消去してから、パッケージフォルダーを消去しました。それが終わった後、私は古いプロジェクトを修復し、きれいに構築することができました。
構成ファイルまたはパッケージフォルダーが非常に壊れている理由については調べていませんが、2つの理由の1つであると考えています。
それ以来、アップデートを適用する前に、すべてをチェックアウトします。ただし、EFをしばらく更新していないので、これによりEFまたは足場の問題が解決したという証拠はありません。
VS2013エラー:選択したコードジェネレーターの実行中にエラーが発生しました: 'タイプ' SolutionName.Model.SalesOrder 'の構成は既に追加されています...'
Pluralsightコース「EF、MVC、Knockout、Ajax、およびValidationを使用した親子データ」の作業中にこの問題が発生しました。テンプレートを使用して新しい足場アイテムを追加しようとしていましたエンティティフレームワークを使用したビュー付きMVC 5コントローラー。
私が使用していたData Contextクラスには、OnModelCreatingメソッドのオーバーライドが含まれています。 EFのデフォルトが適切でないいくつかの明示的なデータベース列構成を追加するには、オーバーライドが必要でした。このオーバーライドは単純で、機能し、バグはありませんでしたが、(上記のように)Controller scaffoldingコード生成を妨害しました。
私のために働いたソリューション:
1-OnModelCreatingオーバーライドを削除(コメントアウト)し、エラーメッセージなしで完了したscaffoldingテンプレート-コントローラーコードは期待どおりに生成されました。
2-ただし、「モデルが変更された」ため、プロジェクトをビルドしようとすると窒息します。コントローラーコードが適切に生成されたため、OnModelCreatingオーバーライドを復元(コメント解除)し、プロジェクトをビルドして正常に実行しました。
私はこの問題を解決することができ、何が起こっているかを少しよく理解することができました。最良の部分は、問題を再現し、ここで説明を確実にするために修正できることです。 解決策は、データアクセスレイヤープロジェクトとWebプロジェクトの両方にまったく同じバージョンのEntity Frameworkをインストールすることでした。
データアクセスレイヤーには、NuGetを使用してEntity Framework v6.0.2がインストールされていましたが、WebプロジェクトにはEntity Frameworkがインストールされていませんでした。 Entity Frameworkテンプレートを使用してWeb API Controllerを作成しようとすると、Entity Frameworkは自動的にインストールされますが、古いバージョン6.0.0の1つです。 Entity Frameworkの2つのバージョンがインストールされていることに驚きました。新しいデータレイヤープロジェクトとWebプロジェクトの古いバージョンです。一度、古いバージョンを削除し、新しいバージョンをWeb Projectにインストールすると、問題はなくなりました。
私はすべてのプロジェクトをチェックし、それぞれに同じバージョンのEntity Frameworkがありました。私の場合、問題は私のプロジェクトの1つは.Net 4.0をターゲットとしており、残りは.Net 4.5でしたでした。
解決:
私が見つけたすべてのウェブサイトですべての答えを試しましたが、これまでは何も機能しませんでした。私のような人が来て、私が持っているのと同じイライラする経験がある場合に備えて、遅く投稿してください。
私の問題は、多くの場合、scaffoldingを使用して新しいコントローラー(ef6、webapi)を追加しようとするときの一般的なエラーメッセージに似ていました。当初は約15台のコントローラーに足場を使用することができましたが、その後1日だけ動作しなくなりました。
最終的な解決策:
出来上がり! (私のために)
これは通常、無効なWeb.config
ファイルが原因です。私は同じ問題を抱えていたため、HTMLコメントブロック<!-- -->
をサーバー側のコメントブロック@* *@
に誤って変更しました([すべて置換]アクションを使用)。
また、WinFormsアプリケーションを開発している場合は、App.config
を確認してください。
私はまったく同じ問題を抱えています。 Pluralsightコース「EF、MVC、Knockout、Ajax、およびValidationを使用した親子データ」に沿って進むと、最初にこれに遭遇しました。
MVC 5、EF 6.1.1、およびフレームワーク4.5.2を使用しています。
VS2013をアップデート4にアップデートした後でも、このエラーは続きました。
DbContextクラス内でDbSetをIDbSetに変更することにより、この厄介な問題を回避することができました。元々 here からの回答でした。
//From
public DbSet SalesOrders { get; set; }
//To
public IDbSet SalesOrders { get; set; }
これを解決するために働いたのは、ソリューションを閉じて、ソリューションファイルではなくプロジェクトファイルをクリックしてプロジェクトを開き、コントローラーを追加して、叔父をボブします
上記のどれも私を助けてくれませんでした。
私の問題の原因は、scaffoldアイテムが依存していたコンテキストクラスでOnModelCreatingをオーバーライドしていることがわかりました。このメソッドをコメントアウトすることにより、足場が機能します。
Microsoftがバグの少ないコードをリリースすることを願っています。
別のプロジェクトのモデルを参照するときに、新しいMVC5プロジェクトでこのエラーが発生しました。パスを確認すると、EntityFramework.dllが存在していました。ただし、読み取り専用でした。プロセスモニターは、ファイルを削除しようとしてエラーが発生したことを示しました。パッケージフォルダー(ソース管理に保存されているコピー)のEntityFramework.dllを書き込み可能に設定すると、このエラーが発生しましたが、参照されているものと一致しないためEntityFrameworkアセンブリを読み込めないという別のエラーが発生しました。私のモデルクラスは、以前のバージョンのエンティティフレームワークを使用していた別のプロジェクトで定義されていました。 MVC5プロジェクトはEF 6を参照していましたが、モデルはEF 4.4を参照するプロジェクトのものでした。モデルのプロジェクトでEF 6にアップグレードすると、修正されました。
私たちにとっては、ビルド構成と関係があり、最近使用したDebug | x64ビルド構成があります。これは、振り返ってみると、足場が機能しなくなったときのようです。
(これを引き起こす可能性のある少なくとも10の異なるものがあると思われます。SO他の人のため、私のソリューションがすべての人に有効であることを提案していません)。
私たちにとってうまくいったこと(64ビットWindows 7でVS 2013 Express for Webを使用):
それ(足場)は[〜#〜] not [〜#〜] Debug | x64 Build configurationで動作していました。しかし、以下を実行すること(すべてのステップが必要なようです-より合理化された方法でそれを行う方法を理解できませんでした)は、私たちにとってはうまくいくようです。
Scaffolding-non-workingビルド構成に戻す必要がある場合は、現時点で必要なものをすべて足場にした後、それを行うことができます。必要なものをスキャフォールディングした後、Debug | x64に切り替えました。
以下は私の写真のエラーで、以下の手順は私にとって問題を解決しました。
選択したコードジェネレーターの実行中にエラーが発生しました:
'プロジェクトの依存関係情報をアップグレードできませんでした。プロジェクトを復元して、もう一度試してください。
手順:
これがお役に立てば幸いです、ありがとう
これは通常、Web.configの形式に関連しています
ソリューションを再構築し、[エラー]タブの[メッセージ]で検索します。 web.configでフォーマットの問題がある場合は、そこに表示されます。それを修正して再試行してください。
例:connectionstring
の代わりにconnectionString
がありました
Api ControllerをMVC ASP.NET Webアプリに追加しようとしたときに、他の回答とはまったく異なる理由でこの問題が発生しました。コピーアンドペースト操作のため、誤って整数プロパティのStringLength属性をIndexAttribute宣言に含めていました。
[Index]
[IndexAttribute("NumTrainingPasses", 0), StringLength(50)]
public int NumTrainingPasses { get; set; }
IndexAttribute宣言を削除したら、問題のプロパティ(NumTrainingPasses)を含むモデルのApiコントローラーを追加できました。
検索エンジンを支援するために、問題を修正する前に表示された完全なエラーメッセージを以下に示します。
選択したコードジェネレーターの実行中にエラーが発生しました:
「Owner.Models.MainRecord」のメタデータを取得できません。プロパティ
'NumTrainingPasses'は文字列またはバイト配列ではありません。長さは、文字列またはバイト配列プロパティに対してのみ構成できます。
これは、特定の Area に対して最上位フォルダーの外に新しい足場を作成しようとしたときに起こりました。
私は単に自分のエリアを再選択し、問題はなくなりました。
足場の生成後、最初に領域を再選択しないと新しい足場を作成できない場所に移動することに注意してください(少なくともVS 2013では)。
また、MSVS2013 Update 4およびEF 6.0でこの問題が発生しています。
there was an error running the selected code generator.
A configuration for type XXXX has already been added ...[]
約10クラスのモデルがあります。プロジェクトの最初に問題なく要素を足場にしました。
数日機能を追加した後、モデルから別のクラスを作成しようとしましたが、エラーが原因で実行できませんでした。
私はMSVSをアップデート2からアップデート4にアップデートしようとしましたが、私のOnModelCreatingメソッドと他のアイデアは運良くコメントアウトされています。
プロジェクトを継続する一時的な方法として、別のasp.netプロジェクトを作成し、そこにモデルクラスを貼り付け(Fluent APIを使用しているため、アノテーションはほとんどありません)、コントローラーとビューを正常に作成しました。
その後、作成したクラスを元のプロジェクトに貼り付けて、いくつかの間違い(主にdbset名)を修正しました。
動作しているように見えますが、クラス間の関係に関連する間違いを見つけることはまだあると思います(作成時に流れるような設定がないため)。
これが他のユーザーに役立つことを願っています。
私は遅れていることを知っていますが、それはとてもイライラしていたので、これが少し役立つかもしれません...
私の問題は、ここでの多くの経験、新しいビューを追加しようとしたとき、または足場を使用して新しいコントローラーを追加しようとしたときの一般的なエラーメッセージに似ていました。
mvc 5とef 6のモデルビルダーは良い友達ではないことがわかりました。
私のソリューション:
1。ContextクラスでmodelBuilderをコメントアウトします。
2。ソリューションのクリーン、ソリューションの再構築。
3。スキャフォールディングを介してビューとコントローラーを追加します
4。モデルビルダーのコメントを解除します。
たぶん少し型にはまらない-しかしそれは働いた! (私のために)
ソリューションを再構築するとうまくいきます。再構築する前に、「ApplicationDbContext」の参照番号がゼロであることがわかりました。これは不可能です。そのため、ソリューションを再構築してください。
別のプロジェクト(データアクセスレイヤー)でモデルとコンテキストを作成すると、MVC5とEFでこのエラーが頻繁に発生し、MVCプロジェクトのWeb.Configにコンテキスト接続文字列を追加するのを忘れます。
この問題はVS 2017で発生しました。プラットフォームターゲット(プロジェクトプロパティ>ビルド>全般)が「x64」に設定されていました。 「任意のCPU」に変更した後、足場は機能し始めました。
それが誰かを助ける場合、モデルが存在する名前空間の名前を変更し、プロジェクトを再構築し、再び名前を変更して再構築し、それが機能しました。
MVCアプリのEF参照プロパティ([プロパティ]ウィンドウ)で[特定のバージョン]がFalseとしてマークされ、他のプロジェクト(DBContextおよびモデルを含む)でEF参照プロパティがマークされたMVCアプリから参照されたときに同じ問題が発生しました本当です。 Falseとマークしたとき、すべてが正常でした。
web.configファイルを次のように変更します。efタグからプロバイダーを削除します。
<entityFramework>
</entityFramework>
構成セクションの下に接続文字列タグを追加しました。
</configSections>
<connectionStrings>
<add name=".." connectionString="..." providerName="System.Data.EntityClient" />
</connectionStrings>