从Visual Studio 2013创建nuget包

时间:2013-11-21 23:27:01

标签: visual-studio nuget

我在VS2013上安装了NuGet.Tools.2013.vsix。我喜欢从经理控制台创建一个nuget包,但是当我尝试时我得到了一个menagem:

术语“nuget'不被识别为cmdlet,函数,脚本文件或可操作程序的名称。检查名称的拼写,或路径 包括在内,验证路径是否正确,然后重试。

我不知道自己做错了什么。

可以使用管理器控制台创建包,或者我需要使用其他东西。

5 个答案:

答案 0 :(得分:8)

不确定我是否完全理解这个问题,但如果您在Visual Studio中使用程序包管理器控制台,则无需在该窗口中使用nuget启动命令。我通常使用程序包管理器控制台来安装/更新当前解决方案的程序包。例如:

Install-Package Nunit

通常,您可以通过以下命令从正常的Windows命令行调用nuget来创建包:

nuget pack Library.csproj

有关详细信息,请参阅http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package

答案 1 :(得分: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清单文件,但是这仍然不会创建实际的包。为此,您必须回退到可以从https://nuget.org/nuget.exe下载的nuget.exe命令行工具。可以在NuGet Docs网站上找到文档。

答案 2 :(得分:2)

现在有一个Nuget包浏览器可以让你使用漂亮的小GUI创建Nuget包。通过ClickOnce部署安装。

https://npe.codeplex.com/downloads/get/clickOnce/NuGetPackageExplorer.application

答案 3 :(得分:0)

这是旧的,但我一直在寻找这些信息。我将http://docs.nuget.org/create/creating-and-publishing-a-package的信息与我在使用软件包管理器控制台时收集到的信息结合起来。

我通过执行以下操作从程序包管理器控制台创建了规范和程序包:

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

替换&lt; projectFolder&gt;使用项目文件的路径。

这将在项目文件夹中创建一个规范。 (.nuspec文件)

然后根据需要编辑这个新创建的文件。有些信息似乎是从AssemblyInfo文件中提取的,因此您可能还需要编辑它。

然后

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

替换&lt; projectFileName.csproj&gt;使用您的项目文件名。 (我想这对于一个vb项目来说是.vbproj。)

答案 4 :(得分:0)

确保nuget.exe上的%PATH%位于.csproj

注意: 我们使用Jenkins并在构建过程中需要EnvInject来获取%PATH%变量。 < / p>

修改您的<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> 文件以包含程序集版本号的新宏变量,请参阅Determine Assembly Version during a Post Build Event?

.nupkg

每当程序集版本发生更改并且需要新的IF "$(ConfigurationName)" == "Release" ( CD /D $(ProjectDir) IF EXIST $(TargetName).@(VersionNumber).nupkg EXIT nuget pack $(ProjectPath) -Properties Configuration=$(ConfigurationName) nuget push $(TargetName).@(VersionNumber).nupkg -s http://mynugetserver ) 时,请使用以下构建后脚本来部署新程序包;

import pygame
from pygame.locals import *
pygame.mixer.init()
a="first sentence..."
b="second sentence..."
sentList=[]
sentList.append(a)
sentList.append(b)
sound1= pygame.mixer.Sound('lose1.ogg')
soundList=[]
soundList.append(sound1)
chan1=""
for i in range (len(sentList)):
    print sentList[i]
    chan1= soundList[i].play()
    while chan1.get_busy():
        z=0