¿Cómo se tienen los desarrolladores a puerta VS2008 .NET 2.0 (pero no el paquete de servicio) para evitar choques de tiempo de ejecución?

StackOverflow https://stackoverflow.com/questions/1357472

Pregunta

Por lo tanto, quiero actualizar mi equipo de desarrollo para VS2008. Como empresa, no hemos lanzado el tiempo de ejecución 3.5 todavía.

A partir de una cierta lectura, parece que la instalación de VS2008 dará automáticamente .NET 2.0 SP1, que tiene algunas nuevas API, y cuando el destino de 2.0 tiempo de ejecución asumirá 2.0 SP1.

Pero si SP1 no se extenderá a nuestros usuarios, esto dará lugar a roturas de tiempo de ejecución.

  1. ¿Hay alguna forma de tener VS objetivo dotnet 2.0 (NO SP1)?
  2. ¿Hay alguna otra solución a este problema para que los desarrolladores no utilizan API que compilar y ejecutar bien localmente pero estallan en la producción?

veo que FxCop tiene un cheque por esto, pero tiene que haber una solución más infalible para este problema.

¿Fue útil?

Solución

Esto puede ser difícil o fácil. Fuimos dos rutas:

  1. La forma más fácil: Establecer un servidor de compilación que tiene sólo .Net 2.0 instalado. Automatizar la compilación para ejecutar el registro de entrada (usamos CruiseControl.Net). Usted tendrá que utilizar MSBuild desde el símbolo del sistema para construir los proyectos.

  2. Para las máquinas con 3.5 instalado muchas de las herramientas de MSBuild se sustituyen incluso cuando se ejecuta el MSBuild desde el directorio NET Framework 2.0. Para evitar esto se debe crear una aplicación que hace que el uso continuado de sólo el tiempo de ejecución .Net 2.0. Esto no es facil. Cargamos directamente los proyectos e invocar el la acumulación mediante el Microsoft.Build. * Marco. Esto por sí solo no es suficiente. Usted tiene que fijar los conjuntos que desee utilizar en su archivo .config:

                                                                                  ... etc ...        

Por cierto, es posible que tenga problema con los proyectos de nueva creación en VS2008 esperan una propiedad llamada "MSBuildToolsPath" que debe ser definido. Esto se puede definir en la línea de comandos si se utiliza MSBuild, o especificar mediante programación si se utiliza la segunda opción:

engine.GlobalProperties.SetProperty( "MSBuildToolsPath", msbuildPath );

Otros consejos

Tal vez el supportedRuntime elemento de configuración vale la pena echar un vistazo a. Pero no estoy seguro de si esto puede ayudar.

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