Pregunta

De acuerdo con esta matriz de funciones , Visual Studio 2010 Premium (RC) incluye " análisis de código estático " ;.

Sin embargo, agregar llamadas a Contract.Requires al comienzo de mis métodos no parece tener ningún efecto. No obtengo excepciones de tiempo de ejecución si se viola el contrato. No recibo advertencias del compilador si un contrato no puede ser probado. Tampoco puedo encontrar un " Contratos de código " pestaña en la configuración del proyecto.

¿Me falta algo obvio o esta función solo está disponible en la edición Ultimate?

¿Fue útil?

Solución

De hecho, parece haber cierta confusión sobre si los Contratos de Código se incluyen o no en el marco que viene con la versión beta 2 de VS2010, o incluso en VS2010. El foro de Contratos de Código (y en especial este post) tiene varias menciones de esto sin respuestas hasta el momento.


No creo que los Contratos de Código caigan bajo el encabezado del análisis de código estático. Creo que el análisis de código estático se refiere a otras herramientas de análisis de código como FxCop.

He intentado usar Contract.Requires en la versión final de VS2010 beta 2, pero tengo el mismo comportamiento que tú. Si observa las propiedades del proyecto en la pestaña Análisis de código, puede habilitar el análisis de código, pero esto no está relacionado con los Contratos de código.

De acuerdo con el comentario de Melitta (del Equipo de bibliotecas de clases base) en el artículo de conexión Hacer que la verificación estática del contrato de datos esté disponible en Professional Edition :

  

... pero la restricción en la herramienta de análisis estático representa esta próxima versión. Mantiene la historia del análisis de código consistente, ya que las herramientas de análisis estático requieren VSTS.

Esto sugiere que (tendrás) que tener la versión del sistema del equipo para obtener la versión en tiempo de compilación de los Contratos de Código.

Otros consejos

Para obtener un análisis estático en Beta 2, debe descargar e instalar los bits de Contratos de Código (1.2.21023.14 o superior) desde MSDN DevLabs . Luego, bajo las propiedades del proyecto, ahora habrá una pestaña de Contratos de Código ... desde aquí puede activar el análisis estático ...

El comportamiento que está viendo es porque la API de Contratos de Código se encuentra en el ensamblado mscorlib, lo que permite que funcionen las aserciones, pero nada más.

Supongo que esto no será necesario por RTM.

Debe activar el código de tiempo de ejecución de los contratos en las propiedades del proyecto. Si ese panel de configuración no existe, entonces necesita instalar la descarga de Contratos de Código de Microsoft (a pesar de que el Contrato existe en el marco).

Solo la verificación en tiempo de ejecución está disponible en las ediciones Professional.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top