shy*_*kov 36 powershell visual-studio-2010 nuget
我试图在Visual Studio 2010中使用Package Manager控制台中我最喜欢的源代码控件.我遇到了另一个主题中描述的问题.现在最好的答案是将所有命令行内容从Visual Studio移到裸机Powershell.
但是这种情况下Visual Studio相关的命令行开关不起作用.例如,最关键的一个 - 我无法Update-Database从Entity Framework 运行命令.
是否可以在Powershell中以某种方式为当前项目注册Visual Studio特定的命令行开关?或者让Powershell自动从packages子文件夹中获取当前项目上下文?
Mat*_*ard 13
NuGet PowerShell命令依赖于从Visual Studio中运行,因此无法在从命令行运行的常规PowerShell外部工作.
但是,您可以使用migrate.exe所附带的EntityFramework NuGet包,并使用命令行来更新数据库.
作为原型,我整理了一种使用SharpDevelop从普通PowerShell命令行使用NuGet PowerShell命令的方法.不幸的是,目前EntityFramework NuGet包不能与SharpDevelop一起使用.
另一个有趣的项目是StudioShell,它在Visual Studio中提供了一个新的DTE:驱动器,但也可以在命令行之外使用.我不相信它支持从普通的PowerShell命令行运行NuGet PowerShell命令.
我可以在以下位置找到NuGet.psd1文件:
C:\Program Files (x86)\Microsoft Visual Studio
12.0\Common7\IDE\Extensions\5ttpefif.3mk\Modules\NuGet\NuGet.psd1.
但是,当您尝试加载它时:
PS> Import-Module $pathToNuGetPsd1 -Force -NoClobber -Scope Global
Import-Module : The name of the current Windows PowerShell host is: 'ConsoleHost'.
The module 'C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\
Extensions\5ttpefif.3mk\Modules\NuGet\NuGet.psd1' requires the following Windows
PowerShell host: 'Package Manager Host'.
Run Code Online (Sandbox Code Playgroud)
我想我们运气不好.它必须从程序包管理器主机运行,并且需要Matt所述的Visual Studio中的内容.
为了解决我的问题,我使用Chocolatey来安装NuGet.CommandLine,然后使用NuGet.bat来完成我需要的工作.这是一项更多的工作,可能无法在所有情况下工作,具体取决于您正在尝试做什么.
Chocolatey:https://github.com/chocolatey/chocolatey/wiki/Installation
NuGet.CommandLine:
PS> cinst NuGet.CommandLine
Run Code Online (Sandbox Code Playgroud)
我对Visual Studio cmdlet并不十分熟悉,但您可以使用将模块导入PowerShell会话Import-Module -Name <ModuleName>.您可以使用`Get-Module -ListAvailable'列出可用的(也称为"已安装")PowerShell模块.
我的猜测是Visual Studio cmdlet包含在自己的PowerShell模块中,但它很可能没有"安装"到其中一个标准位置$env:PSModulePath.如果是这种情况,那么您可能需要找到模块目录并直接导入.psd1或.psm1文件,并将其传递到:Import-Module -Name <FullPathToModuleFile>.
作为上述示例,请注意Windows Azure PowerShell模块的位置:http://trevorsullivan.net/2012/06/07/introducing-microsofts-official-windows-azure-powershell-module/
它位于Program Files目录下,并且不会立即供PowerShell使用,除非您从其完全限定的路径(.psd1模块清单文件)导入模块.
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
29703 次 |
| 最近记录: |