从 Visual Studio 2013 创建 Nuget 包

问题描述 投票:0回答:5

我已经在我的VS2013上安装了

NuGet.Tools.2013.vsix
。我喜欢从管理器控制台创建一个 Nuget 包,但是当我尝试时,我得到了一个信息:

术语“nuget”不被识别为 cmdlet、函数、脚本文件或可操作程序的名称。检查名称的拼写,或者路径是否正确 已包含,请验证路径是否正确并重试。

我不知道我做错了什么。

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

visual-studio nuget
5个回答
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 了解更多信息。


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 站点上找到。


2
投票

现在有一个 Nuget 包资源管理器,它允许您使用一个漂亮的小 GUI 创建 Nuget 包。通过 ClickOnce 部署安装。

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


0
投票

确保您在

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
)

0
投票

这已经很旧了,但我一直在寻找这些信息。 我将 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>

替换为您的项目文件名。 (我猜对于 vb 项目来说,它应该是 .vbproj。)

© www.soinside.com 2019 - 2024. All rights reserved.