新版本(AssemblyFileVersionAttribute.Version)是否总是成功?

本文关键字:成功 是否 AssemblyFileVersionAttribute Version 新版本 | 更新日期: 2023-09-27 18:12:52

new Version(AssemblyFileVersionAttribute.Version)总能成功吗?

这是我的代码。

Contract.Ensures(Contract.Result<Version>() != null);
var ass = Assembly.GetExecutingAssembly();
var attributes = ass.GetCustomAttributes(typeof(AssemblyFileVersionAttribute), false).Cast<AssemblyFileVersionAttribute>();
var versionAttribute = attributes.Single();
return new Version(versionAttribute.Version)

新版本(AssemblyFileVersionAttribute.Version)是否总是成功?

No:

[assembly:AssemblyFileVersion("fred")]
static class program
{
    static void Main()
    {
        var ass = Assembly.GetExecutingAssembly();
        var attributes = ass.GetCustomAttributes(typeof(AssemblyFileVersionAttribute), false).Cast<AssemblyFileVersionAttribute>();
        var versionAttribute = attributes.Single();
        var ver = new Version(versionAttribute.Version);        
    }
}

注意这个生成一个警告:

警告1程序集生成——为"文件版本"指定的版本"Fred"不在正常的"major.minor.build"中。修订的格式

但是警告并不能阻止它的发生。

是,如果在AssemblyInfo.cs中定义了属性AssemblyFileVersionAttribute。如果在AssemblyInfo.cs中注释了[assembly: AssemblyFileVersion("1.0.0.0")],上述代码将抛出异常。