BinaryFormatter ignora la versión de ensamblaje

Tengo el siguiente método para generar un hash de un objeto. ¡Funciona bastante bien! Pero cuando cambio la versión del ensamblaje, el hash cambia incluso cuando el objeto es el mismo.

public static string GetHash(Object item)
{
    MemoryStream memoryStream = new MemoryStream();
    BinaryFormatter binaryFormatter = new BinaryFormatter();
    binaryFormatter.Serialize(memoryStream, item);
    binaryFormatter.AssemblyFormat = FormatterAssemblyStyle.Simple;

    HashAlgorithm hashAlgorithm = new MD5CryptoServiceProvider();
    memoryStream.Seek(0, SeekOrigin.Begin);

    return Convert.ToBase64String(hashAlgorithm.ComputeHash(memoryStream));
}

¿Cómo es posible ignorar la versión de montaje?

Respuestas a la pregunta(2)

Su respuesta a la pregunta