2013-11-21 108 views
14

我在我的VS2013上安裝了NuGet.Tools.2013.vsix。我喜歡從管理控制檯創建nuget包,但是當我嘗試獲取mensagem時:從Visual Studio 2013創建nuget包

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

我不知道我做錯了什麼。

可能使用管理器控制檯來創建一個包,或者我需要使用其他的東西。

回答

0

請確保您有nuget.exe%PATH%某處。

注:我們使用Jenkins並需要EnvInject來獲取構建過程中可用的%PATH%變量。

編輯您的.csproj文件,包括程序集的版本號的新宏變量,看Determine Assembly Version during a Post Build Event?

<Target Name="PostBuildMacros"> 
    <GetAssemblyIdentity AssemblyFiles="$(TargetPath)"> 
    <Output TaskParameter="Assemblies" ItemName="Targets" /> 
    </GetAssemblyIdentity> 
    <ItemGroup> 
    <VersionNumber Include="@(Targets->'%(Version)')"/> 
    </ItemGroup> 
</Target> 
<PropertyGroup> 
    <PostBuildEventDependsOn> 
    $(PostBuildEventDependsOn); 
    PostBuildMacros; 
    </PostBuildEventDependsOn>  
    <PostBuildEvent>echo HELLO, THE ASSEMBLY VERSION IS: @(VersionNumber)</PostBuildEvent> 
</PropertyGroup> 

使用下面的生成後腳本部署新的軟件包,只要組裝版本已發生變化,新的需要.nupkg;

IF "$(ConfigurationName)" == "Release" (
    CD /D $(ProjectDir) 
    IF EXIST $(TargetName)[email protected](VersionNumber).nupkg EXIT 
    nuget pack $(ProjectPath) -Properties Configuration=$(ConfigurationName) 
    nuget push $(TargetName)[email protected](VersionNumber).nupkg -s http://mynugetserver 
) 
8

不知道我完全理解了這個問題,但是如果您在Visual Studio中使用包管理器控制檯,那麼您不需要在該窗口中使用nuget啓動命令。我通常使用軟件包管理器控制檯來安裝/更新當前解決方案的軟件包。例如:

nuget pack Library.csproj 

http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package更多信息:

Install-Package Nunit 

通常你通過調用正常的Windows命令行的NuGet的東西,如創建你的包。

+0

嘗試鏈接,但pack.nuspec不起作用。我們如何創建nuget包而不安裝其他程序並更改路徑變量? – MrFox

+1

現在的問題是如何從NPC中修復包裝。答案不能是「不要使用NPC,使用Windows CLI」 – Suamere

6

NuGet程序包管理器控制檯不公開任何命令以在Visual Studio中創建NuGet程序包。您也不能使用nuget.exe命令,因爲您沒有在啓用PowerShell的控制檯中與NuGet命令行對話(除非您通過創建NuGet PowerShell配置文件來了解位於磁盤上的nuget.exe,例如一個別名)。

但是,如果您想在Visual Studio(包括IntelliSense)中創建NuSpec文件,我確實創建了一個NuGet包供您安裝。在我的博客上的更多信息:http://www.xavierdecoster.com/install-nuspec-with-intellisense

這使您可以更輕鬆地創作NuGet清單文件,但是這仍然不會創建實際的包。爲此,您必須回退到nuget.exe命令行工具,您可以從https://nuget.org/nuget.exe下載該工具。文檔可在NuGet Docs網站上找到。

0

這是老了,但我一直在尋找該信息。我將http://docs.nuget.org/create/creating-and-publishing-a-package的信息與我使用包管理器控制檯收集的信息相結合。

我用打以下方法創建從該Package Manager控制檯的規格和包裝:

cd <projectFolder> 
../.nuget/nuget spec 

Replace <projectFolder>的路徑到項目文件。

這將在項目文件夾中創建一個規範。 (.nuspec文件)

然後根據需要編輯這個新創建的文件。某些信息似乎是從AssemblyInfo文件中提取的,因此您可能還需要編輯該信息。

然後

../.nuget/nuget pack <projectFileName.csproj> 

更換<projectFileName.csproj>您的項目文件名。 (我想這將是一個VB項目.vbproj。)

相關問題