Entity Framework Core RC2 dotnet ef не является приложением для этой платформы ОС

У меня есть проект ASP.Net Core, где я пытался создать существующую базу данных для создания dbcontext. Это файл project.json:

{
      "dependencies": {
        "Microsoft.AspNetCore.Mvc": "1.0.0-rc2-final",
        "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0-rc2-final",
        "Microsoft.AspNetCore.Server.Kestrel": "1.0.0-rc2-final",
        "Microsoft.EntityFrameworkCore": "1.0.0-rc2-final",
        "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0-rc2-final",
        "Microsoft.EntityFrameworkCore.SqlServer.Design": "1.0.0-rc2-final",
        "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview1-final",
        "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-rc2-final",
        "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0-rc2-final",
        "Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-final",
        "Microsoft.Extensions.Logging": "1.0.0-rc2-final",
        "Microsoft.Extensions.Logging.Console": "1.0.0-rc2-final",
        "Microsoft.Extensions.Logging.Debug": "1.0.0-rc2-final"
      },

      "tools": {
        "Microsoft.EntityFrameworkCore.Tools": {
          "version": "1.0.0-preview1-final",
          "imports": [
            "portable-net45+win8+dnxcore50",
            "portable-net45+win8"
          ]
        },
        "Microsoft.AspNetCore.Server.IISIntegration.Tools": {
          "version": "1.0.0-preview1-final",
          "imports": "portable-net45+win8+dnxcore50"
        }
      },

      "frameworks": {
        "net452": { }
      },

      "buildOptions": {
        "emitEntryPoint": true,
        "preserveCompilationContext": true
      },

      "publishOptions": {
        "include": [
          "wwwroot",
          "Views",
          "appsettings.json",
          "web.config"
        ]
      },

      "scripts": {
        "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
      }
    }

Microsoft.EntityFrameworkCore.Tools - "preview1 final", но я не вижу какой-либо более новой версии, например rc2, которую я мог бы использовать... Я установил различные зависимости перед переходом в текущее состояние, но я выполнил инструмент dotnet перестроить весь проект и даже использовать загадочную опцию --infer-runtimes, упомянутую в некоторых ответах. Все еще не повезло.

У меня PowerShell 5.0 на машине:

PS C:\projectfolder> $PSVersionTable.PSVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
5      0      10586  117

При выполнении команды dotnet ef в PowerShell, когда я в папке проекта, я получаю следующую ошибку (я заменил имя проекта и путь на "проектная папка" здесь). То же самое происходит, если я использую команду "scaffold" ef, так что вот только самая простая форма командной строки для получения ошибки:

PS C:\projectfolder> dotnet --verbose ef --help    
[...]
    Running C:\projectfolder\bin\Debug\net452\win7-x86\Microsoft.EntityFrameworkCore.Tools.Cli.exe --framework net452 --configuration Debug --verbose --help --dispatcher-version 1.0.0-preview1-20901
    System.ComponentModel.Win32Exception: The specified executable is not a valid application for this OS platform.
       at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo)
       at System.Diagnostics.Process.Start()
       at Microsoft.DotNet.Cli.Utils.Command.Execute()
       at Microsoft.EntityFrameworkCore.Tools.DispatchCommand.<>c__DisplayClass2_0.<Create>b__0()
       at Microsoft.Extensions.CommandLineUtils.CommandLineApplication.Execute(String[] args)
       at Microsoft.EntityFrameworkCore.Tools.Program.Main(String[] args)

dotnet --info возвращает:

.NET Command Line Tools (1.0.0-preview1-002702)

Product Information:
 Version:     1.0.0-preview1-002702
 Commit Sha:  6cde21225e

Runtime Environment:
 OS Name:     Windows
 OS Version:  6.1.7601
 OS Platform: Windows
 RID:         win7-x86

Система win7 32bit. Платформы.Net, установленные в этой системе:

  • Core 1.0.0 RC2 - SDK Preview 1 (x86)
  • Core 1.0.0 RC2 - VS 2015 Tooling Preview 1
  • 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1

Обновление: я также проверил (снова), работает ли он из командной строки VS Package Manager, но (как и следовало ожидать) происходит сбой с тем же сообщением об ошибке:

PM> Scaffold-DbContext -Connection 'Server=name;Database=testdb;Persist Security Info=False;User ID=user;Password=pass' -Provider Microsoft.EntityFrameworkCore.SqlServer -Verbose
Working directory: C:\projectfolder
Executing command: dotnet ef --configuration Debug --build-base-path .\bin\ dbcontext scaffold 'Server=name;Database=testdb;Persist Security Info=False;User ID=user;Password=pass' Microsoft.EntityFrameworkCore.SqlServer --verbose
System.ComponentModel.Win32Exception: The specified executable is not a valid application for this OS platform.    at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
    at Microsoft.DotNet.Cli.Utils.Command.Execute() 
   at Microsoft.EntityFrameworkCore.Tools.DispatchCommand.<>c__DisplayClass2_0.<Create>b__0()
   at Microsoft.Extensions.CommandLineUtils.CommandLineApplication.Execute(String[] args)
   at Microsoft.EntityFrameworkCore.Tools.Program.Main(String[] args)
 The specified executable is not a valid application for this OS platform.

Обновление: я добавил "Microsoft.EntityFrameworkCore" в зависимости проекта, но без разницы. (Я думаю, что сборка уже присутствовала, как зависимость от других...)

Что я делаю не так?* Помощь... Есть ли что-то еще, что я должен установить / проверить?

0 ответов

Другие вопросы по тегам