Se, por algum motivo, você não tiver permissão para usar o método de comparação da versão diretamente (por exemplo, em um cenário cliente-servidor), outra abordagem é extrair um número longo da versão e depois comparar os números entre si. No entanto, o número precisa ter o seguinte formato: Dois dígitos para Maior, Menor e Revisão e quatro para Compilação.
Como extrair o número da versão:
var version = Assembly.GetExecutingAssembly().GetName().Version;
long newVersion = version.Major * 1000000000L +
version.Minor * 1000000L +
version.Build * 1000L +
version.Revision;
E então, em outro lugar, você pode apenas comparar:
if(newVersion > installedVersion)
{
//update code
}
Nota: a versão instalada é um número longo extraído anteriormente