7

Según this feature matrix, Visual Studio 2010 Premium (RC) incluye "análisis de código estático".¿Visual Studio 2010 Premium incluye las herramientas contractuales?

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 infringe el contrato. No recibo advertencias del compilador si no se puede probar un contrato. Tampoco puedo encontrar una pestaña "Contratos de código" en la configuración del proyecto.

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

Respuesta

3

Parece haber cierta confusión acerca de si Code Contracts está o no incluido en el marco que viene con beta 2 de VS2010, o incluso en VS2010. La publicación Code Contracts forum (y, especialmente, this) tiene varias menciones de esto sin respuestas hasta el momento.


No creo que Code Contracts esté bajo el encabezado de 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 VS2010 beta 2 ultimate edition, pero tengo el mismo comportamiento que usted. 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 se relaciona con los Contratos de Código.

De acuerdo con el comentario de Melitta (a partir de las bibliotecas de clases Equipo Base) sobre el artículo de conexión Make data contract static checking available in Professional Edition:

... pero la restricción a la herramienta de análisis estático es sinónimo de este próximo lanzamiento. Mantiene constante la historia del análisis de código, ya que las herramientas de análisis estático requieren VSTS.

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

+0

¿Ya hay una "edición de equipo" en vs2010? La matriz de características no lo muestra. –

+1

Creo que las versiones de Team System se convierten en la versión definitiva de 2010 (http://www.microsoft.com/visualstudio/en-gb/products/msdn/default.mspx#roadmap) – adrianbanks

1

Debe activar la comprobación del tiempo de ejecución de los contratos de código 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.Requiere existe en el marco).

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

3

Para obtener el 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, debajo de las propiedades del proyecto, ahora habrá una pestaña 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 está en ensamblado mscorlib, que permite que las afirmaciones funcionen, pero nada más.

Supongo que RTM no lo necesitará.

+0

Desafortunadamente, esto parece que todavía no está trabajando en RTM. MS estropeó este. Puedes poner Contracts. Requieres, pero la magia no ocurre hasta que descargas las herramientas de CodeContracts. –

Cuestiones relacionadas