2010-08-04 7 views
5

Tengo varias versiones de .NET Framework (versiones 1.1 a 4.0) instaladas en una máquina remota que ejecuta XP Professional. También he instalado la Extensión reactiva por si acaso.¿Por qué System.Threading.dll podría faltar en Windows Assembly?

También tengo una aplicación que funciona en mi máquina porque hace referencia a System.Threading encontrado aquí: C: \ Archivos de programa \ Microsoft reactiva Extensiones \ Redist \ desktopV2 \ System.Threading.dll

tengo dos versiones de la DLL en el GAC también.

dos preguntas:

i) ¿Por qué Visual Studio decidir que esta es la versión (ejemplo) para hacer referencia a que escogí de la lista en lugar de navegar a al archivo?

ii) ¿Por qué System.Threading no existe en la máquina remota? (pensé que era una parte central del Marco)

Gracias

Respuesta

8

System.Threading.dll se añadió en .NET 4.0 (aunque el namespaceSystem.Threading ha estado presente desde v1). Rx incluye una versión de System.Threading.dll que se transfirió a .NET 3.5 SP1.

Parece que tiene como objetivo .NET 3.5. En este caso, el tiempo de ejecución no cargará un System.Threading.dll (obviamente) de 4.0. Su carga fallaría a menos que haya incluido la versión Rx de System.Threading.dll junto con su programa.

para responder a la pregunta directa:

  1. Rx registra sus propios directorios privados como extensiones marco. Así es como lo encuentra VS.
  2. System.Threading.dll solo se incluye en .NET 4.0, por lo que si se dirige a un marco anterior, no se encontrará.

Para resolver su problema, tenga su programa objetivo .NET 4.0 o incluya Rx System.Threading.dll junto con su programa.

P.S. Recomiendo actualizar a la última versión de Rx. La carpeta desktopV2 no se ha utilizado para las últimas versiones. Al actualizar, desinstale primero la versión anterior; funciona mejor de esa manera.

+1

+1: Acaba de vencerme. –

+0

Estable. Los cambios de imagen pueden tomar hasta 24 horas. Además, ¿qué tal una ayuda con el dll que falta? – ofraski

+0

@sarfeast: si apunta a .NET 4.0, entonces la DLL se cargará correctamente desde el GAC. Si orienta .NET 3.5, entonces incluya la versión Rx de la DLL. –

0

i) La lista de referencias debe mostrar todas las versiones de componentes registrados, que sea seleccionado esa versión en particular, o si no está en la lista , debe haber sido no registrado o eliminado.

ii) System.Threading existía since framework 1, y si no está en la máquina, debe haber sido no registrado o eliminado.

No sé extensiones reactivas, y después de buscar no puedo encontrar mucha información si lo hace quitar System.Threading.dll

+0

i) Acepto ii) Estoy ~ 90% seguro de que esta DLL no se ha eliminado o no registrado. No puedo pensar por qué sucedería. – ofraski

Cuestiones relacionadas