Подтвердить что ты не робот

Ошибка первой ошибки Framework Entity Framework

Я новичок в MVC 4 и инфраструктуре сущности, и когда я запускаю эту команду из консоли диспетчера пакетов:

Enable-Migrations -ContextTypeName MyFirstMvcApp.Models.InventoryDbContext

Join-Path: не может связывать аргумент с параметром 'Path', потому что он равен null.

Я получаю следующую ошибку:

Join-Path : Cannot bind argument to parameter 'Path' because it is null.
At D:\GitProjects\MyFirstMvcApp\trunk\packages\EntityFramework.6.0.0-alpha2\tools\EntityFramework.psm1:363 char:27
+     $toolsPath = Join-Path <<<<  $installPath tools
    + CategoryInfo          : InvalidData: (:) [Join-Path], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.JoinPathCommand

Join-Path : Cannot bind argument to parameter 'Path' because it is null.
At D:\GitProjects\MyFirstMvcApp\trunk\packages\EntityFramework.6.0.0-alpha2\tools\EntityFramework.psm1:392 char:73
+     $utilityAssembly = [System.Reflection.Assembly]::LoadFrom((Join-Path <<<<  $toolsPath EntityFramework.PowerShell.Utility.dll))
    + CategoryInfo          : InvalidData: (:) [Join-Path], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.JoinPathCommand

You cannot call a method on a null-valued expression.
At D:\GitProjects\MyFirstMvcApp\trunk\packages\EntityFramework.6.0.0-alpha2\tools\EntityFramework.psm1:393 char:50
+     $dispatcher = $utilityAssembly.CreateInstance <<<< (
    + CategoryInfo          : InvalidOperation: (CreateInstance:String) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull

Join-Path : Cannot bind argument to parameter 'Path' because it is null.
At D:\GitProjects\MyFirstMvcApp\trunk\packages\EntityFramework.6.0.0-alpha2\tools\EntityFramework.psm1:426 char:19
+         (Join-Path <<<<  $runner.ToolsPath EntityFramework.PowerShell.dll),
    + CategoryInfo          : InvalidData: (:) [Join-Path], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.JoinPathCommand

Как это исправить? Обратите внимание, что я использую Visual Studio 2010 Ultimate с пакетом обновления 1, и я установил MVC4 в этой ссылке.

4b9b3361

Ответ 1

Исправлено это путем удаления и повторной установки сущности. В интересах других, вот команды...

Удалить

PM > Uninstall-Package EntityFramework -Force

После удаления, переустановите EntityFramework:

PM > Install-Package EntityFramework -Pre

Там! Это исправлено. Хотя я до сих пор не знаю, что вызвало проблему.

Ответ 2

Я столкнулся с той же проблемой, вот как я решил проблему,

Я использую Visual Studio 2019 и, следовательно, я установил последнюю платформу Entity Framework 6.3.0 (стабильную). Я столкнулся с проблемой, когда запускал команду Enable-Migrations, я пытался переустановить платформу Entity, но она не сработала. Я установил старую версию 6.2.0 из менеджера пакетов Nuget, по-видимому, она работала.

Ответ 3

Визуальная студия 2019: Uninstall-Package EntityFramework -Force

затем

Установочный пакет EntityFramework -Pre -Версия 6.2.0

что-то не так с v6.3.0

Ответ 4

Несколько лет спустя...
Другой возможной причиной этой проблемы является формат VS 2017 csproj, или, точнее, подход PackageReference в отличие от использования packages.config.

С новым подходом к включению пакетов Nuget с использованием формата PackageReference в файлы проекта сценарий установки EntityFramework не выполняется (это известный факт для этого нового подхода включения пакетов Nuget). В связи с этим команды PowerShell не готовы к выполнению.

В настоящее время обсуждается этот вопрос в хранилище GitHub Entity Framework.
До тех пор, пока это не будет исправлено (либо сотрудниками NuGet, либо сотрудниками EF) для запуска миграций (речь идет о EF 6, а не EF Core!), Вам необходимо придерживаться "старого" способа включения пакетов Nuget с использованием пакетов. Конфиг подход.

Проверьте настройки Visual Studio на
Tools -> Options -> NuGet Package Manager -> General и убедитесь, что
Default package management format установлен на Packages.config.

Обратите внимание, что вам придется удалить все пакеты, сохранить проект, перезапустить Visual Studio, а затем переустановить все пакеты при переключении этого параметра.
В текущей версии VS 2017 (я думаю, начиная с версии 15.4) есть автоматическое преобразование из Packages.config в PackageReference, но не наоборот (к сожалению).

Ответ 5

У меня была та же проблема, и я решил ее, изменив Startup Project.

У меня есть 5 проектов в одном и том же решении, и каждый раз, когда я Right Click и Set as startup участвую в проекте не ASPNET CORE, я получаю такую ошибку.

Ответ 6

Удаление Entity Framework не помогло мне.

Оказалось, что проблема не была Visual Studio или Entity Framemwork, но это был факт, что я запускал PowerShell 2 (на Windows 7).

Entity Framework и Visual Studio требуют PowerShell 3.

После обновления и перезагрузки проблема исчезла. Надеюсь, это поможет нескольким людям.

Здесь вы можете найти PowerShell → https://www.microsoft.com/en-us/download/details.aspx?id=40855

Ответ 7

В моем случае ни один из вышеперечисленных решений не работал, поэтому я быстро просмотрел файл packages.config и, к моему удивлению, нашел две записи для Entity Framework

<package id="EntityFramework" version="6.1.1" targetFramework="net45" />
<package id="EntityFramework" version="6.1.3" targetFramework="net45" />

Обратите внимание, что они разные версии, не знаю, как это могло произойти. Во всяком случае, как только я удалил старый из файла packages.config, то в итоге получился только этот:

<package id="EntityFramework" version="6.1.3" targetFramework="net45" />

Я мог бы затем Enable-Migrations без проблем.

Ответ 8

Я столкнулся с той же проблемой при работе с миграциями Code First.

Что мне помогло, так это перейти к диспетчеру пакетов NuGet, а затем выполнить поиск Entity Framework. Там я установил Pre-release version, затем я выбрал Latest Stable version и установил его.

После этого все работало идеально.

Ответ 9

Начиная с версии 6.3, инструменты Entity Framework поддерживают новый формат проекта в стиле SDK.

Однако эта проблема все еще может возникать, когда проект, содержащий ваши миграции, использует новый формат в стиле SDK, в то время как запускаемый проект использует классический формат csproj.

Чтобы это исправить, заставьте оба проекта использовать один и тот же формат csproj.

Ответ 10

У меня была та же проблема, когда я обновил EntityFramework до версии 6.3.0, поэтому, когда я вернулся к 6.2.0, это исправило проблему, поэтому я советую вам сделать то же самое

Ответ 11

Я столкнулся с этой проблемой при обновлении до EntityFramework "6.3.0" с "6.2.0". Проблему и обходной путь можно найти здесь EF 6.3.0 Команды PMC выдают ParameterBindingValidationException, когда Startup Project представляет собой веб-приложение.

Проблема возникает, когда у вас есть несколько проектов, и вы устанавливаете проект ASP.NET как проект запуска

Обходной путь предлагается по ссылке:

Если вы добавили в решение новое фиктивное консольное приложение и установили в него ежедневную сборку EntityFramework, то будет использоваться та версия команд, которая включает в себя исправление. Команды отлично работают с проектами, ссылающимися на EF 6.3.

Персональное решение:

Настройка запуска проекта не ASP.NET проект исправил проблему в моем случае. Обратите внимание, что вам придется скопировать строки подключения в соответствующий файл конфигурации проекта, если вы их используете.