我已经在我的VS2013上安装了
NuGet.Tools.2013.vsix
。我喜欢从管理器控制台创建一个 Nuget 包,但是当我尝试时,我得到了一个信息:
术语“nuget”不被识别为 cmdlet、函数、脚本文件或可操作程序的名称。检查名称的拼写,或者路径是否正确 已包含,请验证路径是否正确并重试。
我不知道我做错了什么。
可以使用管理器控制台创建包,或者我需要使用其他东西。
不确定我完全理解这个问题,但如果您在 Visual Studio 中使用包管理器控制台,那么您不需要在该窗口中使用 nuget 启动命令。我通常使用包管理器控制台来安装/更新当前解决方案的包。例如:
Install-Package Nunit
通常,您可以通过从普通 Windows 命令行调用 nuget 来创建包,如下所示:
nuget pack Library.csproj
请参阅 http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package 了解更多信息。
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 站点上找到。
现在有一个 Nuget 包资源管理器,它允许您使用一个漂亮的小 GUI 创建 Nuget 包。通过 ClickOnce 部署安装。
https://npe.codeplex.com/downloads/get/clickOnce/NuGetPackageExplorer.application
确保您在
nuget.exe
上有 %PATH%
。
注意:我们使用 Jenkins 并需要 EnvInject 来获取构建过程中可用的 %PATH% 变量。
编辑您的
.csproj
文件以包含程序集版本号的新宏变量,请参阅在构建后事件期间确定程序集版本?
<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 中的信息与我通过使用包管理器控制台收集的信息结合起来。
我通过执行以下操作从 Package Manager Console 创建了规范和包:
cd <projectFolder>
../.nuget/nuget spec
将
这将在项目文件夹中创建一个规范。 (.nuspec 文件)
然后根据需要编辑这个新创建的文件。 有些信息似乎是从 AssemblyInfo 文件中提取的,因此您可能还需要对其进行编辑。
然后
../.nuget/nuget pack <projectFileName.csproj>
将