我已在VS2013上安装了NuGet.Tools.2013.vsix。我想从管理控制台创建一个nuget包,但是当我尝试时,我收到以下消息:
'nuget'一词不被识别为cmdlet、函数、脚本文件或可操作程序的名称。请检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。
我不知道我做错了什么。
是否可以使用管理控制台创建软件包,还是需要使用其他工具?
我已在VS2013上安装了NuGet.Tools.2013.vsix。我想从管理控制台创建一个nuget包,但是当我尝试时,我收到以下消息:
'nuget'一词不被识别为cmdlet、函数、脚本文件或可操作程序的名称。请检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。
我不知道我做错了什么。
是否可以使用管理控制台创建软件包,还是需要使用其他工具?
我不太确定我完全理解这个问题,但如果你正在使用Visual Studio中的包管理器控制台,则无需在该窗口中以nuget开头启动命令。 我通常使用包管理器控制台为我的当前解决方案安装/更新软件包。 例如:
Install-Package Nunit
nuget pack Library.csproj
请访问 http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package 以获取更多信息。
%PATH%
的某个地方有nuget.exe
。
注意:我们使用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).@(VersionNumber).nupkg EXIT
nuget pack $(ProjectPath) -Properties Configuration=$(ConfigurationName)
nuget push $(TargetName).@(VersionNumber).nupkg -s http://mynugetserver
)
这是旧的内容,但我一直在寻找这些信息。我将http://docs.nuget.org/create/creating-and-publishing-a-package上的信息与我从“程序包管理器控制台”中获得的信息相结合。
我通过以下步骤从程序包管理器控制台创建了规范和程序包:
cd <projectFolder>
../.nuget/nuget spec
将 <projectFolder> 替换为项目文件的路径。
这将在项目文件夹中创建一个规范。(.nuspec 文件)
然后根据需要编辑这个新创建的文件。一些信息似乎是从 AssemblyInfo 文件中提取的,因此您可能还需要编辑该文件。
然后
../.nuget/nuget pack <projectFileName.csproj>
将 <projectFileName.csproj> 替换为您的项目文件名。(我猜vb项目应该是 .vbproj)