c# - 创建动态程序集版本,包括日期和随机修订号

标签 c# asp.net asp.net-mvc version assemblyversionattribute

我正在寻找一种为我的 ASP.NET MVC5 解决方案创建动态程序集版本的方法,以便它遵循以下格式:

YYYY.M.D.XXXXX

例如:

2014.7.25.45261

理想情况下,我想在 AssemblyInfo.cs 中执行以下操作:

DateTime dt = DateTime.Today;
[assembly: AssemblyVersion(String.Format("{0}.{1}.{2}.*", dt.Year, dt.Month. dt.Day))]

我知道这是不可能的。

是否有其他方法可以实现这一点?

最佳答案

版本通常由构建服务器设置,但您可以使用 T4 模板生成程序集信息。我这样做是为了不必手动更改日期。添加一个名为 AssemblyInfo.tt 的文件并向其中添加以下内容:

<#@ template language="C#" #>
using System.Reflection;
using System.Resources;
using System.Runtime.InteropServices;

#if DEBUG
[assembly: AssemblyConfiguration("Debug")]
#else
[assembly: AssemblyConfiguration("Release")]
#endif

[assembly: AssemblyCompany("My Company")]
[assembly: AssemblyProduct("My Product")]
[assembly: AssemblyCopyright("Copyright © My Company <#=DateTime.Now.Year#>")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: NeutralResourcesLanguage("en")]
[assembly: ComVisible(false)]
[assembly: AssemblyFileVersion("1.0.0.0")]
// etc.

添加生成版本号所需的代码。有关详细信息,请参阅:http://msdn.microsoft.com/en-us/library/bb126445.aspx

关于c# - 创建动态程序集版本,包括日期和随机修订号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24958030/

相关文章:

asp.net - LINQ 获取过去 12 个月的数据

c# - 无法将类型 'System.Linq.IQueryable<Project.Models.TaskTimeLine>' 隐式转换为 'Project.Models.TaskTimeLine'

c# - 从枚举和其他引用方案中释放.NET中的COM对象

c# - 从 EntityFramework 4 中的多对多关系中删除

c# - 如何配置 swig 以在 64 位平台中将 size_t 映射为 ulong 而不是 uint (c#)

c# - HTML 敏捷包设置

c# - Asp.net、C# 从面板中选择单选按钮和标签

c# - MVC 5 多个 HtmlHelper.ValidationSummary 在一页上

c# - 基于 float 的 div 扩展一个 div

c# - 使用 C# WebClient 伪造表单提交