Compartir a través de


Oleadas de cambios

Una oleada de cambios es un conjunto de cambios de comportamiento en MSBuild que puede optar por no recibir especificando una marca concreta como variable de entorno. El propósito de esto es advertirle de cambios potencialmente perjudiciales para que tenga flexibilidad para adaptarse a estos cambios antes de convertirse en funcionalidad estándar. Todas las características de una oleada de cambios específica solo se pueden habilitar o deshabilitar juntas, no individualmente.

Al actualizar a una nueva versión de MSBuild, los cambios potencialmente disruptivos se habilitan de forma predeterminada, pero si una funcionalidad afecta negativamente a la compilación, puede deshabilitar fácilmente ese conjunto de cambios. Cada oleada de cambios se identifica mediante un número de versión de MSBuild (por ejemplo, 16.8), pero establecer la oleada de cambios solo controla determinadas características que tienen el potencial de afectar al proceso de compilación, no todos los cambios en esa versión de MSBuild. Aparece una lista de las características de cada oleada de cambios más adelante en este artículo. Al deshabilitar una oleada de cambios también se deshabilitan las oleadas de cambios de versiones superiores.

Optar por no recibir las características de una oleada de cambios

Para deshabilitar las características de una oleada de cambios, establezca la variable de entorno MSBuildDisableFeaturesFromVersion en la oleada de cambios (o versión de MSBuild) que contiene la característica que desea deshabilitado. Esta es la versión de MSBuild para la que se desarrollaron las características. Consulte la asignación de oleadas de cambios a las características siguientes.

Valores de MSBuildDisableFeaturesFromVersion

Si no establece MSBuildDisableFeaturesFromVersion en una oleada de cambios válida, recibirá una advertencia o se establecerá de forma predeterminada una oleada concreta. En la tabla siguiente se muestran los valores posibles:

Valor de MSBuildDisableFeaturesFromVersion Resultado ¿Recibe una advertencia?
Anular Habilite todas las oleadas de cambios, lo que significa que todas las características detrás de cada oleada de cambios están habilitadas. No
Cualquier oleada de cambios válida y actual (por ejemplo, 16.8) Se deshabilitan todas las características que hay detrás de una oleada de cambios 16.8y posteriores. No
Valor no válido (por ejemplo, 16.9 cuando las ondas válidas se 16.8 y 16.10) Utiliza como valor predeterminado el valor válido más cercano (ascendente). Por ejemplo, al establecer 16.9, se toma como predeterminado 16.10. No
Fuera de rotación (por ejemplo, 17.1 cuando la onda más alta es 17.0) Se fija en el valor válido más cercano. Por ejemplo, 17.1 se sujeta a 17.0y 16.5 se sujeta a 16.8
Formato no válido (por ejemplo, 16x8, 17_0, garbage) Habilite todas las oleadas de cambios, lo que significa que todas las características detrás de cada oleada de cambios están habilitadas.

Oleadas de cambios y características asociadas

17.10

17.8

17.6

17.4

17.0

Las ondas de cambio ya no están en rotación

16.8

16.10

Preguntas más frecuentes

¿Por qué se dejan fuera de la rotación las demás versiones de las oleadas de cambios?

Creemos que esto es suficiente para discutir con los afectados y ayudar a adaptarse a los cambios.

¿Por qué una variable de entorno y no una propiedad de proyecto?

Hay escenarios en los que queremos colocar una característica en una oleada de cambios antes de que MSBuild haya cargado el proyecto. Por ese motivo, las oleadas de cambios requieren el uso de variables de entorno.

¿Por qué es mejor optar por no recibir que optar por recibir?

Para nosotros es mejor optar por no recibir, si no, es probable que recibamos información limitada cuando una característica afecte a las compilaciones de un cliente.