有没有一种从Visual Studio 2015项目自动创建NuGet包的简单方法?

时间:2016-01-26 13:06:27

标签: msbuild visual-studio-2015 nuget nuget-package-restore

在Visual Studio 2015之前,将项目设置为自动生成NuGet包非常简单。具体来说,你做了:

  1. .nuspec 文件添加到您的项目
  2. 在解决方案右键单击上下文菜单中启用NuGet包还原
  3. 编辑项目.csproj文件并将构建属性 <BuildPackage> 设置为true
  4. 就是这样!

    但是,从VS 2015开始,MSBuild-integrated package restore has been removed并替换为新的自动包恢复。虽然这些都是好消息,但似乎将构建属性<BuildPackage>设置为true不再触发自动包构建。

    这是功能的重大突破!有没有办法在不使用后期构建事件的情况下设置NuGet的自动构建?具体来说,我正在寻找一个MSBuild解决方案,因为它构成了我构建工作流程的支柱。

4 个答案:

答案 0 :(得分:6)

尝试OctoPack:https://www.nuget.org/packages/OctoPack/

只需将nuget包添加到您的项目中即可。

如果您想在每次构建版本时构建它,请添加 到<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|Whatever' ">部分 下一行:

 <RunOctoPack>true</RunOctoPack>

有关微调的更多信息,请访问:https://github.com/OctopusDeploy/OctoPack

答案 1 :(得分:1)

VS2015中有一个类库包的转移,这使得创建NuGet包非常容易。我以前blogged对此有所了解,但基本上只是几个步骤。请注意,目前这只是一个RC1,而不是一个稳定的版本。

  1. ASP.NET and Web Tools 2015 (RC1 Update 1)更新安装到VS2015。

  2. 打开VS2015并创建一个新的类库包项目。

  3. Class Library Package

    1. 将您的代码添加到库中,并使用您可能需要的任何更改来配置project.json文件。以default project.json文件为例。

    2. 右键单击项目,然后选择“属性”菜单项。在“构建”选项卡中,选择“在构建时生成输出”。建立项目。

    3. Produce output

      你已经完成了。转到项目中的artifacts文件夹,在我的例子中是“artifacts \ bin \ AwesomeSoft.TextConverter \ Debug”。

      您应该看到已经创建的NuGet包,以及针对之前指定的每个框架的文件夹。

      Final nuspec

答案 2 :(得分:0)

另一个名为NuPack的替代方案:

How-to-create-a-nuget-package-on-each-Visual-Studio-with-NuPack

这是一个nuget包,可以在构建时自动生成nuget包。

答案 3 :(得分:0)

VS4MAc已经支持此功能,您可以将其作为Windows上VS的扩展

https://github.com/NuGet/NuGet.Build.Packaging