更新程序包管理器控制台,以便在启用NuGet程序包还原后可以使用Update-Database

时间:2014-06-15 12:42:25

标签: asp.net-mvc nuget nuget-package-restore

在Visual Studio ASP.Net MVC项目上启用Enable NuGet Package Restore后,使用packages.config在NuGet下载必要文件时,使用干净的git-clone进行构建。但是,我必须重新启动Visual Studio ,以使Update-Database在程序包管理器控制台中可用。我理解这可能与Powershell软件包管理器控制台的EntityFramework-package安装扩展有关,但是它是如何工作的并且没有快捷方式,所以我不必重新启动Visual Studio?

此Update-Database脚本的确切位置是什么?我在./packages/EntityFramework.5.0.0/找不到它。

此外,我发现有点不方便,我还必须将./.nuget/NuGet.exe添加到git-repository。还有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

遗憾的是,如果没有重新打开解决方案或确保首次打开解决方案时未打开软件包管理器控制台,则在恢复软件包之后可以为Entity Framework提供PowerShell脚本。

Entity Framework NuGet包有一个 init.ps1 PowerShell脚本,该脚本在Package Manager控制台中设置各种PowerShell命令。在Visual Studio中打开解决方案/项目时,或者在已打开解决方案的情况下首次打开程序包管理器控制台之后,将运行init.ps1文件。恢复NuGet包将在解决方案打开后恢复init.ps1,因此不会运行此文件。这就是恢复后命令在控制台中不可用的原因。

您应该能够关闭并重新打开解决方案,而不是重新启动Visual Studio。

Update-Database命令以及其他命令位于Entity Framework NuGet包中包含的其中一个程序集(EntityFramework.PowerShell.dll)中。

对于NuGet包还原,如果您不想,则不必在源代码管理系统中包含 .nuget / NuGet.exe 文件。使用最新版本的NuGet,程序包还原将在构建项目之前由Visual Studio自动完成。您还可以通过从命令行运行 NuGet.exe restore YourSolution.sln 来还原软件包。