【问题标题】:Is there an easy way to automatically create a NuGet package from a Visual Studio 2015 project?是否有一种简单的方法可以从 Visual Studio 2015 项目自动创建 NuGet 包?
【发布时间】:2016-05-03 01:22:11
【问题描述】:

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

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

就是这样!

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

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

【问题讨论】:

  • 看看构建工作流如何依赖它会很有趣,但从 VS 2015 开始,.xproj 项目的输出只是 NuGet 包,它更适合您的需求。
  • .xproj?这是我第一次听说。网络上似乎有关于此项目文件类型的分散信息。您是否愿意详细说明如何创建 C# 项目或将其转换为 .xproj 以生成 nuget 包?那将是一个很好的答案。

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


【解决方案1】:

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

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

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

 <RunOctoPack>true</RunOctoPack>

更多关于微调的信息可以在这里找到:https://github.com/OctopusDeploy/OctoPack

【讨论】:

    【解决方案2】:

    在 VS2015 中迁移到类库包,这使得创建 NuGet 包变得非常容易。我之前已经blogged 讨论过这个问题,但基本上这只是几个步骤。请注意,目前这只是一个 RC1,还不是稳定版本。

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

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

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

    2. 右键单击项目并选择“属性”菜单项。在 Build 选项卡中选择“Produce outputs on build”。构建项目。

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

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

    【讨论】:

    • 这个功能还在吗?我已将 ASP.NET 和 Web 工具更新到版本 14.1.21111,并且没有“类库(包)”项目类型。不确定它是否被重命名或删除,类库包的所有搜索结果都标注日期 ~2016 年 1 月
    • 不,它已被删除。需要在project.json文件中添加post-build脚本或者手动执行“dotnet pack”命令。
    • 这似乎只适用于较新的项目类型,而不适用于较旧的类库项目。
    【解决方案3】:

    还有另一种称为 NuPack 的替代方案:

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

    它是一个nuget包,在构建时自动生成nuget包。

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-04-26
        • 2017-01-18
        • 1970-01-01
        • 1970-01-01
        • 2016-08-09
        • 1970-01-01
        • 2016-01-19
        • 2010-11-10
        相关资源
        最近更新 更多