在没有Visual Studio的情况下运行dotnet ef会引发异常

时间:2017-02-17 06:22:16

标签: asp.net-core entity-framework-core

我有一个项目,它只是一个.NET Core控制台应用程序,只有一个模型和一些种子数据。在开发桌面上,我可以转到应用程序目录,运行dotnet ef database update,一切正常(我需要将appsettings.json复制到bin\...目录,但确定。)

问题是当我需要在客户端环境中运行它时(使用VPN访问,并且没有Visual Studio)。首先,我不确定我需要将什么内容复制到远程计算机上。但是,比方说,我复制了整个项目。首先,当我跑步时,我收到以下错误:

  

未处理的异常:System.IO.DirectoryNotFoundException:找不到路径'.nuget \ packages.tools \ Microsoft.EntityFrameworkCore.Tools'的一部分。

我有一个目录.nuget \ packages \ Microsoft.EntityFrameworkCore.Tools但不在.tools下。出于绝望,我创建了.tools并在其下复制了这个目录,但现在我得到以下异常:

  

未处理的异常:System.NullReferenceException:未将对象引用设置为对象的实例。
  在Microsoft.DotNet.Cli.Utils.ProjectToolsCommandResolver。 ResolveCommandSpecFromToolLibrary(LibraryRange toolLibraryRange,String commandName,IEnumerable`1 args,ProjectContext projectContext)
  在Microsoft.DotNet.Cli.Utils.ProjectToolsCommandResolver。 ResolveCommandSpecFromAllToolLibraries(IEnumerable`1 toolsLibraries,String commandName,IEnumerable`1 args,ProjectContext projectContext)
  在Microsoft.DotNet.Cli.Utils.ProjectToolsCommandResolver。 ResolveFromProjectTools(String commandName,IEnumerable`1 args,String projectDirectory)
  在Microsoft.DotNet.Cli.Utils.ProjectToolsCommandResolver.Resolve(CommandResolverArguments commandResolverArguments)
  在Microsoft.DotNet.Cli.Utils.CompositeCommandResolver.Resolve(CommandResolverArguments commandResolverArguments)
  在Microsoft.DotNet.Cli.Utils.CommandResolver.TryResolveCommandSpec(String commandName,IEnumerable`1 args,NuGetFramework framework,String configuration,String outputPath)
  在Microsoft.DotNet.Cli.Utils.Command.Create(String commandName,IEnumerable`1 args,NuGetFramework framework,String configuration,String outputPath)
  在Microsoft.DotNet.Cli.Program.ProcessArgs(String [] args,ITelemetry telemetryClient)
  在Microsoft.DotNet.Cli.Program.Main(String [] args)

显然,我的试错法试图找到正确的方法。是否有一些关于如何在Visual Studio外部运行EF Core命令的实质性(不仅仅是语法)文档?如果重要,.NET是版本1.1

1 个答案:

答案 0 :(得分:0)

您似乎没有完全删除Entity框架,因此找不到路径:.nuget\packages.tools\Microsoft.EntityFrameworkCore.Tools的错误。

代码中的某处必须有对此文件的引用。如果您正在使用project.json,请尝试检查Microsoft.EntityFrameworkCore.Tools

的工具和依赖项

如果您使用的是.csproj SDK版本。检查项目文件中的任何参考文献并将其删除。