Будет ли новая версия (AssemblyFileVersionAttribute.Version) всегда успешной?
Будет 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 ответа
Решение
Нет:
[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"
Но предупреждение не останавливает это.
Да, если атрибут AssemblyFileVersionAttribute определен в AssemblyInfo.cs. Приведенный выше код вызовет исключение, если [assembly: AssemblyFileVersion("1.0.0.0")]
комментируется в AssemblyInfo.cs.