如何自动增加 MVC 6 版本号?

How can I auto-increment an MVC 6 version number?

ASP.NET 的早期版本允许您通过项目属性自动增加版本号。我如何在 MVC 6 中执行此操作?

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)

ASP.NET 5 (DNX) 回答

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

$env:DNX_BUILD_VERSION=$version

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

{
    "version": "1.0.0-*"
}

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

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