Los contratos de código para .NET 3.5 arruinan el depurador de VS10
Recientemente migré muchas pruebas de precondición manual y lanzamiento de excepciones con contratos de código. En lugar de actualizar a .NET 4, he estado usando elMicrosoft.Contracts.dll
ensamblado para poder seguir usando .NET 3.5 un poco más (esta es una biblioteca que es utilizada por los ensamblados .NET 3.5 y .NET 4). He configurado el reescritor de contratos en Visual Studio 2010 y los contratos funcionan bien.
Sin embargo, desde que hice ese cambio, me di cuenta de que el depurador actúa de manera extraña en métodos con contratos, especialmente en clases con ContractInvariantMethod. El cursor de ejecución no parece coincidir siempre con la línea resaltada, algunos puntos de interrupción no se alcanzan y he tenido un método en el que el depurador no podía decir los nombres de las variables locales y mostraría cosas comoCS ensamblado para poder seguir usando .NET 3.5 un poco más (esta es una biblioteca que es utilizada por los ensamblados .NET 3.5 y .NET 4). He configurado el reescritor de contratos en Visual Studio 2010 y los contratos funcionan bien.0000
. Esto está en versiones de depuración.
¿Existen problemas conocidos sobre el uso de los contratos de código enMicrosoft.Contracts.dll
en .NET 3.5 a VS10? ¿Surgen problemas similares con los contratos de código en .NET 4?
[Editar] Esta pregunta me llevó a crear un error en Microsoft Connect:https://connect.microsoft.com/VisualStudio/feedback/details/573983/code-contract-rewriting-messes-up-local-variable-names-in-iterator-methods-while-debugging