3

总会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)
4

2 回答 2

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”格式

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

于 2013-05-08T11:13:43.103 回答
0

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

于 2013-05-08T11:20:53.960 回答