Rotura de interfaz C #, ABI

Supongamos que tenemos elclass X en la versión 1 de la asambleaA.dll:

class X {
    SomeType Property { set; get; }
}

y luego en la versión 2 del ensamblajeA.dll:

class X {
    SomeType Property { set; get; }
    SomeType OtherProperty { set; get; }
}

Ahora supongamos que tenemos una segunda asambleaB.dll que cargaA.dll y usa X. ¿Se agregará la propiedad?OtherProperty romper el ABI? SeráB.dll no usarA.dll/X? Si no, ¿el orden de las declaraciones haría alguna diferencia? Si las propiedades hubieran sido virtuales, ¿habría hecho alguna diferencia?

Creo que realmente estoy preguntando: ¿cuáles son las reglas generales de ABI? Sé que cambiar las interfaces después de que se hayan publicado es algo malo, pero realmente me gustaría poderañadir propiedades en algunos casos, sin agregar subclases.

Respuestas a la pregunta(3)

Su respuesta a la pregunta