新版本(AssemblyFileVersionAttribute.Version)会不会成功?

时间:2013-05-08 10:58:13

标签: c# .net .net-assembly

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)

2 个答案:

答案 0 :(得分:3)

没有

[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.revision'格式

警告并不能阻止它发生。

答案 1 :(得分:0)

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