2010-09-03 9 views
5

Tenemos una aplicación web ASP.Net ejecutándose en Visual Studio 2010 que tiene como objetivo .Net 3.5. Está siendo desarrollado por TFS 2010. Esta aplicación web tiene un par de referencias web, por lo que la compilación crea una DLL relacionada XmlSerializers. Esta DLL, sin embargo, es un ensamblado de .Net 4.0.TFS 2010 creando .Net 4.0 XmlSerializers DLL para .Net 3.5 Application

Cuando ejecuto esta aplicación web de la construcción, me sale el error:

Could not load file or assembly 'BLAH_BLAH_WEB_APPLICATION_NAME.XmlSerializers' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.

Estamos utilizando un archivo msbuild .proj que estaba trabajando bajo TFS 2008 (con la "Actualiza la plantilla" en la construcción Definición). Vi this question y this one, pero esos mencionan usar un paso de compilación de SGen específico. No somos. Además, la solución propuesta implica una codificación difícil del camino al SGen 7.0A, que es simplemente ... feo.

¿Hay alguna manera de forzar la compilación de TFS 2010 para compilar esta DLL de XmlSerializers como un ensamblado de .Net 3.5?

+0

¿Ha establecido el marco de destino en el proyecto de serializador en 3.5? Verifique las propiedades del proyecto. – Robaticus

+0

No estoy seguro de lo que quiere decir con "el proyecto de serializador". El proyecto que consume las referencias web se dirige a 3.5. ¿Hay alguna configuración para las referencias web? –

Respuesta

4

El problema de raíz era un valor no válido en el registro. El valor SDK35ToolsPath en HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ MSBuild \ ToolsVersions \ 4.0 fue:

$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\[email protected])

Sin embargo, el servidor de compilación tenía SDK de Windows versión 7.1. Por lo tanto, he corregido el valor a ser:

$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.1\[email protected])

Entonces XmlSerializers DLL ahora estaba usando .Net 2.0.

Cuestiones relacionadas