2012-10-24 99 views
66

我正在嘗試使用http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package#From_a_convention_based_working_directory 作爲參考來創建nuget包。 Visual Studio中的我的軟件包管理器控制檯不允許使用'nuget'命令。 我可以'Get-help nuguet',它顯示:'nuget'不被識別,但其他nuget命令正在工作

包括以下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,函數的名稱,腳本文件或可操作的程序。檢查名稱的拼寫,或者如果包含路徑,請驗證路徑是否正確並嘗試使用。

在行:1個字符:6 +的NuGet < < < < + CategoryInfo:ObjectNotFound:(的NuGet:字符串)[],CommandNotFoundException + FullyQualifiedErrorId:CommandNotFoundException

我曾嘗試以下解決方案:

1>關閉所有的項目和重新啓動

2>卸載和重新安裝

3>創建PowerShell配置文件(此之前並不存在,這實際上打破了一切)

的問題開始出現後,我升級我的Visual Studio 2012旗艦版試用版註冊。我原來安裝了VS 12 Pro。我不知道是否真的有什麼關係,但我注意到其他有類似問題的人安裝了10和12。

我的問題是「有人知道還有什麼要嘗試嗎?」我的理論是缺少nuget命令的路徑,但我找不到如何配置程序包管理器控制檯使用的路徑,我不確定實際存儲cmdlet nuget的位置。

更新---嘗試下載命令行工具,如下所示。這導致再沒有工作。我試圖卸載,現在我有一個vs2010擴展中的項目,它沒有啓用安裝或解除按鈕。這使我相信,它與2010年和2012年安裝的擴展程序有關,這在我的小劇集中佔有一席之地。如果任何人也知道如何加載可卸載的擴展名,請告知,但我會爲此嘗試另一個問題。

+1

您是否啓用了UAC,並且您是否嘗試以管理員身份運行Visual Studio以隱藏擴展名? – Betty

回答

0

我身邊這讓通過查找nuget.exe並移動到一個簡單的輸入路徑(C: \ nuget \ nuget),然後用這個路徑調用nuget。這似乎解決了這個問題。 c:\ nuget \ nuget在包管理器控制檯上按預期工作。 我試圖找到控制檯正在使用的路徑並更改環境路徑,但始終無法讓它以這種方式工作。

4

您也可以嘗試將系統變量路徑設置爲nuget exe的位置並重新啓動VS.

  1. 打開系統PATH變量,並添加nuget.exe的位置(這對我來說是:C:\Program Files (x86)\NuGet\Visual Studio 2013
  2. 重新啓動Visual Studio

我會發布此作爲對你的評論answer @done_merson,但我沒有所需的聲望來做到這一點。

97

Nuget.exe放置在您項目的.nuget文件夾中。它不能在包管理器控制檯中直接執行,而是由Powershell命令執行,因爲這些命令爲自己構建自定義路徑。

我的步驟來解決是:從https://github.com/NuGet/NuGet.Client/releasesgive preference for the latest release

  • 下載NuGet.exe;
  • 將NuGet.exe放入C:\Program Files\NuGet\Visual Studio 2012(或您的VS版本);
  • 在PATH環境變量(請參閱http://www.itechtalk.com/thread3595.html作爲操作方法)instructions here)中添加C:\Program Files\NuGet\Visual Studio 2012(或您的VS版本)。
  • 關閉並打開Visual Studio。

更新

的NuGet可以使用以下命令很容易地安裝在您的項目:

安裝,包裝NuGet.CommandLine

+0

應該輸入什麼作爲'變量名'? – Evgeny

+0

正如我所說的,「PATH」。 –

+1

我必須將Nuget.exe放在與我運行nuget命令的位置相同的驅動器上(並相應地調整PATH環境變量值) – mediafreakch

46

有多大更好的方法來做到這一點。

  1. 在你想要打包的項目中安裝Nuget.Build包。安裝後可能需要關閉並重新打開解決方案。
  2. 通過巧克力安裝nuget - 更好。安裝的巧克力:https://chocolatey.org/,然後在命令提示符下運行

    cinst Nuget.CommandLine

。這將安裝nuget和安裝環境路徑,因此nuget始終可用。

+11

+1巧克力 – 2014-08-14 20:06:38

+0

除非您使用npm安裝巧克力 –

5

[Package Manager Console]嘗試解決方案資源管理您的項目下面

Execute "Install-Package NuGet.CommandLine" 
+0

「安裝包NuGet.CommandLine」後,nuget.exe可以在PM中執行。 – BinSys

+11

執行:術語「執行」不被識別爲cmdlet,函數,腳本文件或可操作程序的名稱。檢查名稱的拼寫,或者如果包含路徑,請驗證路徑是否正確,然後重試。 VS2015 – rob

+0

我得到了和@rob一樣的問題。 –

3
  • 單擊鼠標右鍵。
  • 選擇管理解決方案的NuGet軟件包
  • 搜索NuGet.CommandLine由Microsoft安裝它。 Search Nuget.CommandLine
  • 完成安裝後,您會在您的項目中找到一個名爲的文件夾 。轉到解決方案資源管理器並查找它。 packages
  • 包裝內查找名爲NuGet.CommandLine.3.5.0文件夾,這裏是3.5.0版本剛剛命名的文件夾名稱也會隨之改變。 nuGet COmmand Line
  • NuGet.CommandLine.3.5.0查找名爲工具文件夾。 tools
  • 工具你會得到你nuget.exe nuget.exe
2

在Visual Studio:

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

在PM:

Install-Package NuGet.CommandLine 

Ç失去Visual Studio並再次打開它。