11

.Net4.0クラスライブラリプロジェクトでnugetによってインストールされたEntityFramework4.3.1を使用しています。状況によっては、PMコンソールで「Enable-Migrations」コマンドを呼び出すと、次の例外が発生します。

引数が「1」の「LoadFrom」の呼び出しの例外:「Nelzenačístsoubornebosestavenífile:/// D:\ Users \ DvoracekR \ Documents \ Visual Studio 2010 \ Projects \ WebCameras \ packages \ EntityFramework.4.3.1 \ to ols \ EntityFramework.PowerShell.Utility.dll nebojedenzjejichzávislýchprvků.Systémnemůženaléztuvedenýsoubor。」D:\ Users \ DvoracekR \ Documents \ Visual Studio 2010 \ Projects \ WebCameras \ packages\EntityFramework.5にあります。0.0-rc \ tools \ EntityFramework.psm1:393 char:62 + $ UtilityAssembly = [System.Reflection.Assembly] :: LoadFrom <<<<((Join-Path $ toolsPath Entity Framework.PowerShell.Utility.dll))+ CategoryInfo:NotSpecified:(:) []、MethodInvocationException + FullyQualifiedErrorId:DotNetMethodException

null値の式でメソッドを呼び出すことはできません。D:\ Users \ DvoracekR \ Documents \ Visual Studio 2010 \ Projects \ WebCameras \ packages\EntityFramework.5にあります。0.0-rc \ tools \ EntityFramework.psm1:394 char:50 + $ dispatcher = $ UtilityAssembly.CreateInstance <<<<(+ CategoryInfo:InvalidOperation:(CreateInstance:String)[]、RuntimeException + FullyQualifiedErrorId:InvokeMethodOnNull

「8」引数を指定した「CreateInstanceFrom」の呼び出しの例外:「TypSystem.Data.Entity.Migrations.EnableMigrationsCommandzesestaveníEntityFramework.PowerShell、Version = 4.3.1.0、Culture = neutral、PublicKeyToken=b77a5c561934e089nelzenačíst。」D:\ Users \ DvoracekR \ Documents \ Visual Studio 2010 \ Projects \ WebCameras \ packages\EntityFramework.5にあります。0.0-rc \ tools \ EntityFramework.psm1:418 char:31> + $ domain.CreateInstanceFrom <<<<(+ CategoryInfo:NotSpecified:(:) []、MethodInvocationException + FullyQualifiedErrorId:DotNetMethodException

4

6 に答える 6

25

上記の問題を解決しました。

  1. NuGetパッケージマネージャーを使用してEntityFrameworkをアンインストールしました。
  2. パッケージディレクトリの「エンティティ」で始まるサブディレクトリを手動でクリアしました。
  3. EntityFramework4.3.1を再度インストールしました

これで、移行が正しく有効になります。

于 2012-06-14T08:56:10.053 に答える
2

私はこれが古い質問であり、すでに受け入れられた答えを持っていることを知っていますが、私はこの問題を抱えていて、それを解決するために私がしたことを共有したいと思いました。


私の解決策はソース管理にあり、ローカルプロジェクトを台無しにしていました。ソース管理からやり直すことにしたので、新しいフォルダーを作成し、SVNからコードをチェックアウトしました。

そうすると、移行を作成できなくなりました。上記と同じエラーが発生しました。試しUninstall-Package EntityFrameworkましたが、EntityFramework内にファイル/参照がないことについて同様のメッセージが表示されました。

古いフォルダに戻って調べ、$Project\packages\EntityFramework.6.0.2\これを新しいフォルダと比較しました。ソース管理に含まれていなかったため、いくつかのDLL/Xmlファイルが欠落していました。それらは、、\tools\および\lib\net40ディレクトリ\lib\net45\にありました。

これらのファイルを新しいプロジェクトにコピーし、Visual Studioを閉じて再度開き、再構築を行いました。その後、すべてが正常に機能していました。

于 2014-04-02T13:41:21.657 に答える
1

NuGetパッケージの再インストールは機能しませんでした。うまくいったのは、プロジェクトをネットワークドライブからローカルドライブに移動することでした。比較を実行すると、ディレクトリを除いてobjbinすべてのファイルがバイナリ同一であることがわかりました。

私の記憶が正しければ、最後に試みたUpdate-Databaseのは、プロジェクトをネットワークドライブに移動する前でした。

于 2013-02-08T15:04:10.387 に答える
0

大学にプロジェクトを送ってプロジェクトを共有するときに、この問題が発生しました。彼がそれを私に送り返したとき、私が移行を追加しようとしたときに、返されたプロジェクトが私にこのエラーを与えたことを発見しました。返されたプロジェクトのpackages\EntityFramework.5.0.0フォルダーを、元のプロジェクトのフォルダーで上書きすることで、問題を解決しました。

プロジェクトを自分のマシンで動かしても問題はありません。

于 2013-01-20T03:39:37.697 に答える
0

この問題は、同じ物理マシンで異なるVMを使用しているときに発生し始めました。

VMWareFusionはデフォルトでプロファイルディレクトリをOSXと共有します。これにより、Visual Studioがインストールされた複数のVMを使用すると、多くの問題が発生します。実際、インストールしたほとんどすべてのアプリケーションが奇妙な動作をし始めました。その時にベルを鳴らすべきだった。

この問題は、フォルダ共有をオフにすることで解決しました。これは、プロファイルフォルダを共有せず、他のフォルダを追加/削除するだけのオプションがなかったため、それほど明白ではありません。

私の愚かさが他の誰かを助けてくれることを願っています:)

于 2015-07-16T11:02:15.983 に答える
0

VisualStudio2017で開いていたVisualStudio2015のプロジェクトでも同じ問題が発生します。解決方法は次のとおりです。

  1. [ツール] ->[ NuGetパッケージマネージャー] -> [ソリューションからのNuGetパッケージの管理]からEntityFrameworkを手動で削除します
  2. EntityFrameworkを検索します。
  3. 残念ながら、依存関係があります。したがって、Entity Frameworkのみを強制的に削除しても、問題はまったく解決されません。したがって、依存関係が何であれ、上記の手順から手動で削除してください。
  4. 最後に、EntityFrameworkと削除した可能性のある依存関係を再インストールします。これを完了した後、Visual Studioを再起動しませんでした。enable-migrationsと入力すると、すべてが正常に機能しました。

私の経験も共有するために、私はこのステップを試しました:

アンインストール-パッケージEntityFramework-Force

次に、プロジェクトごとにインストールします。

インストール-パッケージEntityFramework

しかし、私の側ではうまくいきませんでした。そのため、強制を使用せずに依存関係を含めて手動でアンインストールし、再度インストールして機能させる必要があると推測しました。しかし、それができてよかったです。

于 2017-06-11T15:37:09.940 に答える