“nuget”不被识别,但是其他nuget命令正在工作

我试图创build一个nuget包使用http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package#From_a_convention_based_working_directory作为参考。 Visual Studio中的我的包pipe理器控制台不允许使用'nuget'命令。 我能够“得到帮助nuguet”,它显示:

包括以下NuGet cmdlet。

Cmdlet Description ------------------ ---------------------------------------------- Get-Package Gets the set of packages available from the package source. Install-Package Installs a package and its dependencies into the project. Uninstall-Package Uninstalls a package. If other packages depend on this package, the command will fail unless the –Force option is specified. Update-Package Updates a package and its dependencies to a newer version. Add-BindingRedirect Examines all assemblies within the output path for a project and adds binding redirects to the application (or web) configuration file where necessary. Get-Project Returns a reference to the DTE (Development Tools Environment) for the specified project. If none is specifed, returns the default project selected in the Package Manager Console. Open-PackagePage Open the browser pointing to ProjectUrl, LicenseUrl or ReportAbuseUrl of the specified package. Register-TabExpansion Registers a tab expansion for the parameters of a command. 
  • 然而,每当我开始与nuget的命令给出:

术语“nuget”不被识别为cmdlet,函数,脚本文件或可操作程序的名称。 检查名称的拼写,或者如果包含path,请validationpath是否正确并尝试添加。

在行:1 char:6 + nuget <<<< + CategoryInfo:ObjectNotFound:(nuget:String)[],CommandNotFoundException + FullyQualifiedErrorId:CommandNotFoundException

我已经尝试了以下解决scheme:

1>closures所有项目并重新启动

2>卸载并重新安装

3>创build一个PowerShellconfiguration文件(这并不存在之前,这实际上打破了一切)

将Visual Studio 2012 Ultimate试用版升级到注册后,问题开始出现。 我原来安装了VS 12 Pro。 我不知道这是否真的有什么关系,但我注意到其他有类似问题的人安装了10和12。

我的问题是“有谁知道还有什么要尝试吗?” 我的理论是缺lessnuget命令的path,但我找不到如何configuration程序包pipe理器控制台使用的path,我不确定实际存储cmdlet nuget的位置。

更新—尝试下载命令行工具,如下所示。 这导致再没有工作。 我试图卸载,现在我有一个项目在vs2010的扩展nuget没有安装或unistallbutton启用。 这使我相信它与2010年和2012年安装的扩展有关,在我的小剧中有一部分。 如果任何人也知道如何nuke一个可卸载的扩展名,请告知,但我会尝试另一个问题。

Nuget.exe放置在项目的.nuget文件夹中。 它不能在包pipe理器控制台中直接执行,而是由Powershell命令执行,因为这些命令为自己构build自定义path。

我要解决的步骤是:


更新

NuGet可以使用以下命令轻松安装在您的项目中:

安装包NuGet.CommandLine

有很多更好的方法来做到这一点。

  1. 在你想要打包的项目中安装Nuget.Build包。 安装后可能需要closures并重新打开解决scheme。
  2. 通过巧克力安装nuget – 更好。 安装巧克力: https : //chocolatey.org/ ,然后运行

    cinst Nuget.CommandLine

在您的命令提示符下。 这将安装nuget和安装环境path,所以nuget总是可用的。

nuget命令行工具不包含vsix文件,它是一个单独的下载

http://nuget.codeplex.com/releases

[Package Manager Console]尝试下面的

 Execute "Install-Package NuGet.CommandLine" 

您也可以尝试将系统variablespath设置为您的nuget exe的位置并重新启动VS.

  1. 打开你的系统PATHvariables,并添加nuget.exe的位置(对于我来说,这是: C:\Program Files (x86)\NuGet\Visual Studio 2013
  2. 重新启动Visual Studio

我会张贴这个作为你的回答 @done_merson的评论,但我没有所需的声誉做到这一点。

  • 解决scheme资源pipe理器中右键单击您的项目。
  • selectpipe理NuGet包解决scheme
  • searchMicrosoft的NuGet.CommandLine并安装它。 搜索Nuget.CommandLine
  • 完成安装后,您将在项目中find一个名为packages的文件夹。 去解决scheme资源pipe理器,并find它。 包
  • 在包内部寻找一个名为NuGet.CommandLine.3.5.0的文件夹,在这里3.5.0只是版本名称,您的文件夹名称将相应地改变。 nuGet命令行
  • NuGet.CommandLine.3.5.0里面找一个名为tools的文件夹。 工具
  • 里面的工具,你会得到你的nuget.exe nuget.exe

通过findnuget.exe并移动到一个简单的typespath(c:\ nuget \ nuget),然后用这个path调用nuget来解决这个问题。 这似乎解决了这个问题。 包pipe理器控制台上的c:\ nuget \ nuget按预期工作。 我试图find控制台正在使用的path,并改变环境path,但永远不能以这种方式得到它的工作。

在Visual Studio中:

 Tools -> Nuget Package Manager -> Package Manager Console. 

在PM:

 Install-Package NuGet.CommandLine 

closuresVisual Studio并再次打开它。