2011-11-16 17 views
13

Parece que a partir de .NET 3.0, Microsoft se trasladó algunos conjuntos comunes ade referencia que no Asambleas de carpetas para .NET 4.0

C:\Program Files\Reference Assemblies\Microsoft\Framework\xxx

con el fin de apoyar sus esfuerzos para dividir a cabo el CLR 2.0 y 4.0 CLR GAC (también ha agregado

C:\%windir%\Microsoft.NET\assembly).

Sin embargo, mientras tanto tengo

C:\Program Files\Reference Assemblies\Microsoft\Framework\xxx

y

en mi máquina de desarrollo, este último no existe en el servidor, donde acabo de instalar .NET 4.0. Un proyecto WCF que se implementa allí hace referencia a algunos archivos DLL comunes de esta carpeta y no puede encontrarlos.

¿Qué estoy haciendo mal? ¿Debo cambiar estas referencias al nuevo 4.0 GAC explícitamente? ¿Por qué esta carpeta no existe en el servidor?

+1

¿Está seguro de que no acaba de instalar un 32 bit .NET 4.0 en una máquina de 64 bits y la carpeta de ensamblados de referencia ha terminado en 'Program files (x86)'? –

+0

@KlausByskovHoffmann el servidor también tiene 32 bits, por lo que no hay carpeta 'Archivos de programa (x86)'. ¡Buena sugerencia! –

Respuesta

21

La carpeta de ensamblajes de referencia se usa con Visual Studio. Mientras que la aplicación implementada real usará el GAC en c: \ Windows \ Microsoft.Net \ Assembly. Supongo que no instaló Visual Studio en su servidor, por lo tanto, no tendría la Carpeta de ensamblajes de referencia.

Si aloja WCF en el servidor, debe asegurarse de instalar .NET 4.0 Full Framework y no solo de la infraestructura del cliente.

+1

Se aceptó la respuesta porque explica correctamente los conjuntos de GAC/referencia configurados en .NET 4.0. Sin embargo, en mi caso, resultó que me faltaban algunos dll que no pertenecían al Framework en el servidor y que eran la causa principal de mis problemas. ¡Gracias por señalarme en la dirección correcta! –

+0

Una cosa a tener en cuenta es que los contenidos de Reference Assemblies vienen con VS * y con varios SDK, e incluso hay descargas separadas de Microsoft *. –

+0

@LexLi ¿Podría indicarnos a qué SDK se está refiriendo? – arviman

Cuestiones relacionadas