Visual Studio中 生成版本号

Visual Stuodio

WPF项目

自动生成版本号

生成递增版本号

软件版本号主要标识了软件的版本,通过其可以了解软件、类库文件的当前版本,使得软件版本控制有所依据。

我们也可以在项目属性上可以看到相关设置的界面,对应的英文名称分别为:major.minor.build.revision

// 程序集的版本信息由下列四个值组成:

//

// 主版本

// 次版本

// 生成号

// 修订号

//

1. 手动设置

修改AssemblyInfo.cs

csharp 复制代码
//[assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.1")]
[assembly: AssemblyFileVersion("1.0.0.1")]

2. 自动设置版本号:使用"生成号"和"修订号"的默认值

修改AssemblyInfo.cs

csharp 复制代码
//可以指定所有这些值,也可以使用"生成号"和"修订号"的默认值
//通过使用 "*",如下所示:
[assembly: AssemblyVersion("1.0.*")]
//[assembly: AssemblyVersion("1.0.0.0")]
//[assembly: AssemblyFileVersion("1.0.0.0")]

修改该项目的csproj文件,搜索Deterministic,将对应的选项由True改为False,或者直接删除该配置项即可。

csharp 复制代码
    <Deterministic>false</Deterministic>

3.自动设置版本号:使用模板T4模板自定义

修改AssemblyInfo.cs,全部注释

csharp 复制代码
//[assembly: AssemblyVersion("1.0.*")]
//[assembly: AssemblyVersion("1.0.0.0")]
//[assembly: AssemblyFileVersion("1.0.0.0")]

在原来的AssemblyInfo.cs的目录Properties下创建一个AssemblyVersion.tt文件,使用当前日期和时间信息生成版本号

csharp 复制代码
<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ output extension=".cs" #>

//
// This code was generated by a tool. Any changes made manually will be lost
// the next time this code is regenerated.
//

using System.Reflection;

<#
    var date = DateTime.Now;
    int major = 1;
    int minor = date.Year;
    int build = int.Parse(date.ToString("MMdd"));
    int revision = int.Parse(date.ToString("HHmm"));
#>

[assembly: AssemblyVersion("<#= $"{major}.{minor}.{build}.{revision}" #>")]
[assembly: AssemblyFileVersion("<#= $"{major}.{minor}.{build}.{revision}" #>")]

如果源模型发生更改,则应重新运行该解决方案中的所有模板。 若要手动执行此操作,请选择"生成"菜单上的"转换所有模板"。

如果已安装 Visual Studio 建模 SDK,则可以在每次执行生成时自动转换所有模板。 为此,可在文本编辑器中编辑项目文件(.csproj 或 .vbproj),然后在文件末尾附近(其他任何 语句之后)添加以下行。 在 SDK 样式项目中,可以转到项目文件中的任意位置。t4模板介绍

csharp 复制代码
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v16.0\TextTemplating\Microsoft.TextTemplating.targets" />
  <PropertyGroup>
    <TransformOnBuild>true</TransformOnBuild>
    <!-- Other properties can be inserted here -->
  </PropertyGroup>
相关推荐
一阵没来由的风2 小时前
拒绝造轮子(C#篇)ZLG CAN卡驱动封装应用
c#·can·封装·zlg·基础封装·轮子
✎ ﹏梦醒͜ღ҉繁华落℘5 小时前
开发WPF项目时遇到的问题总结
wpf
一枚小小程序员哈8 小时前
基于微信小程序的家教服务平台的设计与实现/基于asp.net/c#的家教服务平台/基于asp.net/c#的家教管理系统
后端·c#·asp.net
Eternity_GQM10 小时前
【Word VBA Zotero 引用宏错误分析与改正指南】【解决[21–23]参考文献格式插入超链接问题】
开发语言·c#·word
一匹电信狗12 小时前
【C++】异常详解(万字解读)
服务器·c++·算法·leetcode·小程序·stl·visual studio
cimeo15 小时前
【C 学习】06-算法&程序设计举例
c#
百锦再15 小时前
.NET 的 WebApi 项目必要可配置项都有哪些?
java·开发语言·c#·.net·core·net
qwertyuiop_i18 小时前
使用CMAKE-GU生成Visual Studio项目
visual studio·qt6·sln
WYH2871 天前
C#控制台输入(Read()、ReadKey()和ReadLine())
开发语言·c#
hqwest1 天前
C#WPF实战出真汁06--【系统设置】--餐桌类型设置
c#·.net·wpf·布局·分页·命令·viewmodel