private string GetVersionFromAssembly(Assembly assembly) {
if (assembly == null)
return null;
string version = assembly.GetInformationalVersion();
if (String.IsNullOrEmpty(version) || String.Equals(version, "0.0.0.0"))
version = assembly.GetFileVersion();
if (String.IsNullOrEmpty(version) || String.Equals(version, "0.0.0.0"))
version = assembly.GetVersion();
if (String.IsNullOrEmpty(version) || String.Equals(version, "0.0.0.0")) {
var assemblyName = assembly.GetAssemblyName();
version = assemblyName != null ? assemblyName.Version.ToString() : null;
}
return !String.IsNullOrEmpty(version) && !String.Equals(version, "0.0.0.0") ? version : null;
}