Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2015 “一词”;添加“迁移”;不被承认_Visual Studio 2015_Asp.net Core_Entity Framework Core - Fatal编程技术网

Visual studio 2015 “一词”;添加“迁移”;不被承认

Visual studio 2015 “一词”;添加“迁移”;不被承认,visual-studio-2015,asp.net-core,entity-framework-core,Visual Studio 2015,Asp.net Core,Entity Framework Core,我正在使用它在VS2015中运行昨天成功运行的命令PM>addmigration MyFirstMigration-context BloggingContext,但今天它给出了其他用户也指出的以下错误。我甚至从解决方案资源管理器中删除了Migrations文件夹,并在Win 8.1上从SQL Express 2014中删除了相应的db,但出现了相同的错误。即使我运行了addmigration MyFirstMigration我也会收到相同的错误: Add-Migration : The ter

我正在使用它在VS2015中运行昨天成功运行的命令
PM>addmigration MyFirstMigration-context BloggingContext
,但今天它给出了其他用户也指出的以下错误。我甚至从解决方案资源管理器中删除了Migrations文件夹,并在Win 8.1上从SQL Express 2014中删除了相应的db,但出现了相同的错误。即使我运行了
addmigration MyFirstMigration
我也会收到相同的错误:

Add-Migration : The term 'Add-Migration' is not recognized as the name of a cmdlet, function, script file, or operable program. 
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ Add-Migration MyFirstMigration -context BloggingContext
+ ~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Add-Migration:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
注意:我使用的是2016年6月27日发布的最新版本的ASP.NET Core 1.0和VS2015-Update 3

更新

使用“命令窗口”时,以下命令在windows资源管理器中的项目目录中可以正常工作:

> dotnet ef migrations add MyFirstMigration --context BloggingContext
> dotnet ef database update --context BloggingContext
更新2a

以下是project.json文件:

{
  "userSecretsId": "aspnet-ASPCore_RTM_CodeFirst_test-bef835d9-9831-41a8-bc3a-cd2f1477a880",

  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.0",
      "type": "platform"
    },
    "Microsoft.AspNetCore.Authentication.Cookies": "1.0.0",
    "Microsoft.AspNetCore.Diagnostics": "1.0.0",
    "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.0.0",
    "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0",
    "Microsoft.AspNetCore.Mvc": "1.0.0",
    "Microsoft.AspNetCore.Razor.Tools": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    },
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
    "Microsoft.AspNetCore.StaticFiles": "1.0.0",
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0",
    "Microsoft.EntityFrameworkCore.SqlServer.Design": {
      "version": "1.0.0",
      "type": "build"
    },
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
    "Microsoft.Extensions.Configuration.Json": "1.0.0",
    "Microsoft.Extensions.Configuration.UserSecrets": "1.0.0",
    "Microsoft.Extensions.Logging": "1.0.0",
    "Microsoft.Extensions.Logging.Console": "1.0.0",
    "Microsoft.Extensions.Logging.Debug": "1.0.0",
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0",
    "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    },
    "Microsoft.VisualStudio.Web.CodeGenerators.Mvc": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    }
  },

  "tools": {
    "BundlerMinifier.Core": "2.0.238",
    "Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final",
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
    "Microsoft.Extensions.SecretManager.Tools": "1.0.0-preview2-final",
    "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
      "version": "1.0.0-preview2-final",
      "imports": [
        "portable-net45+win8"
      ]
    }
  },

  "frameworks": {
    "netcoreapp1.0": {
      "imports": [
        "dotnet5.6",
        "portable-net45+win8"
      ]
    }
  },

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

  "runtimeOptions": {
    "configProperties": {
      "System.GC.Server": true
    }
  },

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

  "scripts": {
    "prepublish": [ "bower install", "dotnet bundle" ],
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
  }
}

确保
project.json的
依赖项部分中引用了
Microsoft.EntityFrameworkCore.Tools
。NuGet不会从
tools
部分加载包管理器命令。(见附件)

{
“依赖项”:{
“Microsoft.EntityFrameworkCore.Tools”:{
“版本”:“1.0.0-preview2-final”,
“类型”:“生成”
}
}
}

我遇到了同样的问题,并发现解决方案文件中存在Visual Studio版本控制问题

我的目标是:

VisualStudioVersion=14.0.25123.0

但我需要瞄准:

VisualStudioVersion=14.0.25420.1


直接对解决方案文件进行更改后,EF Core cmdlet开始在Package Manager控制台中工作。

我遇到了相同的问题。我的大多数项目在工具方面都有相同的东西

"tools": {
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
}
除了一个项目外,这在所有项目上都很有效。我将工具中的条目更改为

"tools": {
    "Microsoft.EntityFrameworkCore.Tools": {
    "version": "1.0.0-preview2-final",
    "type": "build"
  }
}

然后运行
dotnet restore
。还原完成后,
添加迁移
工作正常。

请尝试以下步骤:

1) 打开
project.json
文件并从依赖项和工具部分删除所有Microsoft.EntityFrameworkCore.Tools引用

2) 关闭包管理器控制台(PMC)并重新启动
Visual Studio

3) 在依赖项部分下添加

4) 在工具部分下添加

5) 重新启动Visual Studio 2015

6) 打开PMC并键入


之所以会出现这种情况,是因为PMC在Visual Studio启动时识别工具。

我遇到了这个问题,以前的解决方案都没有帮助我。我的问题实际上是由于我的Windows 7计算机上的powershell版本过时造成的-一旦我更新到powershell 5,它就开始工作了。

我在Visual Studio 2013中遇到了这个问题。我重新安装了NuGet软件包管理器:


我也有这个问题。我关闭并打开了VS2015,它“修复”了问题…

只需尝试初始化Microsoft.EntityFrameworkCore.Tools。 下午执行

C:\Users\<username>\.nuget\packages\Microsoft.EntityFrameworkCore.Tools\1.0.0-preview2-final\tools\init.ps1.
C:\Users\\.nuget\packages\Microsoft.EntityFrameworkCore.Tools\1.0.0-preview2-final\Tools\init.ps1。
它帮助我解决了同样的问题。
工具的版本可能不同。这取决于你在项目中使用的内容。

我认为答案需要在2017年更新,因为微软已经做了一些(突破性的)更改,这里将详细介绍这些更改

总而言之,您现在需要在工具部分中参考EntityFrameWorkCore.Tools.DotNet,如下所示

Microsoft.EntityFrameworkCore.Tools.DotNet:“1.0.0”

我还在下面发布了一个project.json文件,以防有人遇到问题

{
  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.1",
      "type": "platform"
    },
    "Microsoft.AspNetCore.Diagnostics": "1.0.0",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
    "Microsoft.Extensions.Logging.Console": "1.0.0",
    "Microsoft.AspNetCore.Razor.Tools": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    },
    "Microsoft.AspNetCore.StaticFiles": "1.0.0",
    "Microsoft.AspNetCore.Mvc": "1.0.1",
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.1",
    "Microsoft.Extensions.Configuration.Json": "1.0.1",
    "Microsoft.EntityFrameworkCore.Tools": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    }
  },

  "tools": {
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final",
    "Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
    "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0"
  },

  "frameworks": {
    "netcoreapp1.0": {
      "imports": [
        "dotnet5.6",
        "portable-net45+win8"
      ]
    }
  },

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

  "runtimeOptions": {
    "configProperties": {
      "System.GC.Server": true
    }
  },

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

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

这些是我遵循的步骤,它解决了问题

1) 将我的Power shell从版本2升级到版本3

2) 关闭PM控制台

3) 重新启动Visual Studio

4) 在PM控制台中运行以下命令 网络还原

5) 添加迁移初始化迁移


成功了

相同的问题…由以下人员解决

1.)关闭pm经理 2.)关闭Visual Studio 3.)开放式Visual Studio 4.)打开pm管理器


似乎诀窍是在关闭VS之前关闭PM管理器转到package Manager控制台(在visual studio中)并执行以下命令

C:\Users\\.nuget\packages\Microsoft.EntityFrameworkCore.Tools\\Tools\init.ps1

​我必须做的是

1) 工具->Nuget软件包管理器->软件包管理器设置

2) 常规选项卡

3) 清除所有NuGet缓存


4) 重新启动Visual Studio

我尝试了上述所有操作,但没有成功。我下载了最新的.net core 2.0软件包,并再次运行了这些命令,它成功了。

非常简单。只需从nuget安装Microsoft.EntityFrameworkCore.Tools
软件包:

安装软件包Microsoft.EntityFrameworkCore.Tools-版本3.1.5

您还可以使用此链接安装最新版本:

.NET CLI命令:

dotnet add package Microsoft.EntityFrameworkCore.Tools

如果问题仍然存在,您可以尝试重新启动visual studio。

您必须知道您的
实体框架是什么版本。
此外,您还必须检查
project.json
并控制以下部分:

在依赖项中

检查:

Microsoft.EntityFrameworkCore.Tools": {
  "version": "1.0.0-preview2-final",
  "type": "build"
},
本节:

“版本”:“1.0.0-preview2-final”

与您的
实体框架的版本相关,您必须对此进行更改

在此之后,
proj.json
的第二部分在这里,在
json
Tools
部分,您有:

"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
此外,这部分代码与您的
实体框架
以及依赖项部分中的最后一部分代码相关


注意:完成此问题后,您应该关闭
CMD
并重新启动visual studio。

在我的例子中,我通过Nuget添加了依赖项:

Microsoft.EntityFrameworkCore.Tools

然后通过Package Manager控制台运行:

add-migration Initial -Context "ContextName" -StartupProject "EntryProject.Name" -Project "MigrationProject.Name"
这就是成功的原因
Microsoft.EntityFrameworkCore.Tools": {
  "version": "1.0.0-preview2-final",
  "type": "build"
},
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
add-migration Initial -Context "ContextName" -StartupProject "EntryProject.Name" -Project "MigrationProject.Name"
Add-Migration InitialCreate