【问题标题】:How can I auto-increment an MVC 6 version number?如何自动增加 MVC 6 版本号?
【发布时间】:2015-11-18 03:50:27
【问题描述】:

以前的 ASP.NET 版本允许您通过项目属性自动增加版本号。如何在 MVC 6 中做到这一点?

【问题讨论】:

标签: asp.net-core asp.net-core-mvc


【解决方案1】:

MVC 6 现在使用project.json 来跟踪版本,您可以使用gulp-bump 增加这个数字。

版本碰撞

  1. 将 gulp-bump 添加到 package.json > devDependencies

    gulp-bump": "1.0.0"

  2. 编辑 gulpfile.js

    • 在顶部的依赖项中添加bump = require("gulp-bump")
    • 添加任务以提升版本号

      gulp.task("bump", function() {
        gulp.src("./project.json")
        .pipe(bump())
        .pipe(gulp.dest("./"));
      });
      
  3. 更新 project.json

    • 默认情况下,MVC 模板将版本号设置为1.0.0-*,将其更改为1.0.0
    • "scripts" 的底部添加"gulp bump" > "prepublish"

现在,无论何时发布、dnu publish 或运行 gulp Task Runner,版本号都会发生变化。

奖金

要在视图中显示此版本号,请在视图中添加以下内容;

@inject Microsoft.Extensions.PlatformAbstractions.IApplicationEnvironment appEnv
My version number is @(appEnv.ApplicationVersion)

【讨论】:

  • 这很酷,但这种方法的问题是,如果您使用源代码管理,这将不起作用。版本号将不会被保存回它。对于那些使用源代码管理和构建机器的人,请参阅我的答案。
  • 您的评论没有意义。该解决方案会增加 project.json 中的版本号 - 允许将相同的 project.json 提交到源代码控制...我认为您的意思是构建服务器而不是源代码控制...
  • 是的,对不起。也许我不清楚,我的意思是如果使用构建服务器,您需要有一个步骤来签出和签入 project.json 文件。
  • 我们如何为 .net 核心类库做到这一点?我想将其发布为 nuget 包,但每当我运行 dotnet pack 时,版本都会自动更新。
【解决方案2】:

ASP.NET 5 (DNX) 答案

这是 ASP.NET 5 团队自己实际使用的。如果您使用的是持续集成构建服务器,您可以让构建服务器设置 DNX_BUILD_VERSION 环境变量,就像使用 PowerShell 一样:

$env:DNX_BUILD_VERSION=$version

然后您的构建机器将 $version 设置为 'build123' 或类似的东西(它不能以数字开头,必须是字母表中的字符)然后,只要您的版本号设置如下:

{
    "version": "1.0.0-*"
}

星号将替换为 DNX_BUILD_VERSION 环境变量中的值。有关详细信息,请参阅 ASP.NET 5 GitHub 页面 here

【讨论】:

  • 如果您有许多项目应该共享相同的版本怎么办?在将 GlobalAssemblyInfo 添加为链接并在一个地方更改版本变得容易之前。
  • @Daniel 以上只会同步构建版本。您可以编写一个小 PowerShell 来读取 project.json JSON,然后设置版本号。
  • 我觉得这个答案没用,它提供了零指导。您能否使用要使用其位置创建的脚本对其进行更新,以及如何将它们集成到现有解决方案中?谢谢
【解决方案3】:

对于 .NET Core (RTM) 项目,您可以使用 dotnet-bump。您可以将它作为工具添加到您的项目中,并从后编译脚本中调用它。 http://github.com/BalassaMarton/dotnet-bump

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2021-02-10
    相关资源
    最近更新 更多