MSBuild ya no admite la llamada a GetType()
MSBuild 17 ya no admite la llamada al método de instancia GetType()
dentro de las funciones de propiedad. Este método permitía la ejecución imprevisible de código durante la evaluación y podría provocar bloqueos de Visual Studio.
Versión introducida
SDK de .NET 6.0.100-rc1
Comportamiento anterior
Las llamadas a GetType()
en las funciones de propiedad de MSBuild se ejecutaban y, en ocasiones, provocaban un comportamiento imprevisible en Visual Studio.
Comportamiento nuevo
A partir del SDK de .NET 6, si llama a GetType()
en una función de propiedad de MSBuild, verá el siguiente error en tiempo de compilación durante la evaluación del proyecto:
La función "GetType" del tipo "System.String" no está disponible para ejecutarla como una función de propiedad de MSBuild.
Cambio de categoría
Este cambio afecta a la compatibilidad de origen.
Motivo del cambio
Esta funcionalidad no estaba documentada ni se usaba con frecuencia. Provocaba problemas de rendimiento y confiabilidad con la carga de proyectos, especialmente en Visual Studio.
El único uso común conocido de este patrón era en el sistema CBT, que ha quedado en desuso.
Acción recomendada
Reemplace las llamadas a GetType()
por una lógica de MSBuild alternativa.
API afectadas
N/D
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de