【问题标题】:MSBuild - Custom assembly version formatMSBuild - 自定义程序集版本格式
【发布时间】:2012-07-15 06:28:18
【问题描述】:

在使用 MSBuild 构建程序集版本时,有什么方法可以为程序集版本使用自定义格式?

例如,我们尝试使用像“0.16.10r2.10717”这样的版本,但是我们得到了这个错误:

error emitting 'system.reflection.assemblyversionattribute' -- The version specified '0.16.10r2.10717' is invalid.

我在网上搜索,但似乎没有人要求解决这个问题。有可能吗?

我们使用 Microsoft Visual Studio 2010 和 FinalBuilder 7 来构建我们的项目。

【问题讨论】:

    标签: visual-studio-2010 msbuild versioning


    【解决方案1】:

    AssemblyVersionAssemblyFileVersion 都必须由最多四个整数组成,以句点分隔,每个整数都不大于 65534 (UInt16.MaxValue-1)。以下任何一项都是有效的(C# 语法):

    [assembly: AssemblyVersion("1.2.3.4")]
    
    // Let the compiler generate the build and/or revision numbers
    [assembly: AssemblyVersion("1.2.3.*")]
    [assembly: AssemblyVersion("1.2.*")]
    

    还有另一个属性AssemblyInformationalVersion,它接受一个字符串作为版本;当您想要使用更复杂的字符串时(尤其是在包含来自 DVCS 的提交 ID 时),可以使用它。

    // Use complex version number
    [assembly: AssemblyInformationalVersion("0.16.10r2.10717")]
    
    // Include Git commit ID
    [assembly: AssemblyInformationalVersion("1.2b1-g39d1c0f")]
    

    简而言之,difference between these attributes 是:

    • AssemblyVersion:用作程序集的 CLR 版本。当程序集具有强名称时,这是验证的版本。

    • AssemblyFileVersion:这是 Win32 文件版本资源,显示在 Windows 资源管理器的程序集属性中。

    • AssemblyInformationalVersion:可在运行时通过Application.ProductVersion 属性访问。也用于Application.UserAppDataDirectory 路径。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-26
      • 1970-01-01
      • 1970-01-01
      • 2018-05-05
      • 2021-01-26
      • 2011-03-23
      • 1970-01-01
      • 2023-03-23
      相关资源
      最近更新 更多