Si por alguna razón no se le permite usar el método de comparación de la Versión directamente (por ejemplo, en un escenario cliente-servidor), otro enfoque es extraer un número largo de la versión y luego comparar los números entre sí. Sin embargo, el número debe tener el siguiente formato: dos dígitos para mayor, menor y revisión y cuatro para compilación.
Cómo extraer el número de versión:
var version = Assembly.GetExecutingAssembly().GetName().Version;
long newVersion = version.Major * 1000000000L +
version.Minor * 1000000L +
version.Build * 1000L +
version.Revision;
Y luego, en otro lugar, puedes comparar:
if(newVersion > installedVersion)
{
//update code
}
Nota: la versión instalada es un número largo previamente extraído