Pregunta

Tengo una solución que contiene varios proyectos. Uno de los proyectos de prueba está utilizando .NET 4.0 debido a una dependencia. La Implementación de Project-poder Quiero construir su objetivo es el .NET 3.5 compilador. Nuestro actual escritura de la estructura granular no es suficiente para dirigirse a diferentes compiladores .NET en un proyecto por proyecto. Básicamente sólo puedo utilizar uno compilador para cada proyecto en la solución.

Es el .NET 4.0 compilador lo suficientemente inteligente como para compilar código 3.5?

Estructura de la solución

  • Proyecto 1 .NET 3.5 (deploy-poder)
  • Proyecto 2 .NET 4.0 (utilizado para las pruebas en el ciclo de construcción automatizado)

Nota: No puedo ignorar el Proyecto 2, ya que nuestro servidor de compilación automatizado ejecuta las pruebas de unidad en el proyecto 2. Todas las pruebas deben pasar antes de una compilación es exitosa.

Editar:

No estoy compilando el código dentro de Visual Studio. Tenemos un script de construcción a medida que se ejecuta externo para Visual Studio. Sólo es lo suficientemente inteligente como para utilizar 1 compilador .NET. Utiliza este compilador para compilar todos los proyectos en una solución dada. La escritura de la estructura no le importa si es o no se definen los proyectos a ser compilado con 3.5 o 4.0. En su lugar, los compila con el compilador definido.

Proyecto 1 no hace referencia a proyecto 2. Proyecto 2 es un proyecto que contiene pruebas de unidad. Nuestros compila herramienta de construcción automatizada Proyecto 2 sólo para ejecutar las pruebas.

¿Fue útil?

Solución

Editar

Op aclaró la pregunta es como los comentarios

  

¿Puede el 4,0 compilador compila un proyecto 3.5

La respuesta es sí, esto es muy posible.

Otros consejos

clic derecho en su proyecto "Proyecto 1" en el explorador de soluciones. A continuación, haga clic en Propiedades (tecla de acceso rápido es ALT + Enter). En la pestaña de aplicaciones que hay un "Marco de destino" gota abajo. Establecer que a 3,5.

Ahora, cuando se compila (suena como que está utilizando una línea de comandos) utiliza MSBuild y no especificar una versión del marco de destino. Sólo compilar el archivo de solución y cada proyecto se compilará correctamente.

Es posible que tenga problemas en función de los tipos de bibliotecas que está utilizando. En particular, tuve problemas con espacios de nombres / nombres de clase que no existían en 3.5 en que se implementaron en 4.0.

Si usted está haciendo algo esotérico como la compilación de código fuente NHibernate como parte de la solución que se ejecutará en problemas. De lo contrario, si no estás entrar en cualquier espacio de nombres que no debería tener problemas para compilar un proyecto de 3,5 a 4,0.

Lo que está mal con la toma de la respuesta de Bob? ¿Está utilizando una solución de generación personalizada (es decir, no Visual Studio)?

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