Почему System.Threading.dll мог бы отсутствовать в Windows\Assembly?

У меня есть различные версии Платформы.NET (версии 1.1 до 4,0) установленный на удаленной машине рабочий Профессионал XP. Я установил Реактивное Расширение слишком в придачу.

У меня также есть приложение, которое работает над моей машиной, потому что она ссылается на Систему. Поточная обработка найдена здесь: C:\Program Files\Microsoft Reactive Extensions\redist\desktopV2\System.Threading.dll

У меня есть две версии DLL в GAC также.

Два вопроса:

i) Почему Visual Studio решала, что это - версия (экземпляр) к ссылке, когда я выбрал из списка вместо того, чтобы просмотреть к в файл?

ii) Почему делает Систему. Поточная обработка не существует на удаленной машине? (Я думал, что это была базовая часть Платформы),

Спасибо

7
задан Stephen Cleary 4 August 2010 в 13:35
поделиться

2 ответа

System.Threading.dll был добавлен в .NET 4.0 (хотя пространство имен System.Threading существует с v1). Rx включает версию System.Threading.dll, которая была перенесена в .NET 3.5 SP1.

Похоже, вы ориентируетесь на .NET 3.5. В этом случае среда выполнения не будет загружать System.Threading.dll только для 4.0 (очевидно). Ваша загрузка не удалась бы, если вы не включили Rx-версию System.Threading.dll вместе с вашей программой.

Чтобы напрямую ответить на вопросы:

  1. Rx регистрирует свои собственные частные каталоги как расширения фреймворка. Вот как это находит VS.
  2. System.Threading.dll входит только в .NET 4.0, поэтому, если вы ориентируетесь на более раннюю структуру, она не будет найдена.

Чтобы решить вашу проблему, либо укажите целевой .NET 4.0, либо включите Rx's System.Threading.dll вместе с вашей программой.

П.С. Я рекомендую обновиться до последней версии Rx. Папка desktopV2 не использовалась в последних нескольких выпусках. При обновлении сначала удалите старую версию - так она работает лучше.

10
ответ дан 7 December 2019 в 01:15
поделиться

i) В списке ссылок должны отображаться все версии зарегистрированных компонентов, вы либо выбрали именно эту версию, либо, если ее нет в списке, она должна быть незарегистрированной или удаленной.

ii) System.Threading существовал начиная с framework 1, и если его нет на машине, он должен быть незарегистрирован или удален.

Я не знаю Reactive Extensions, и после некоторого поиска я не могу найти много информации о том, удаляет ли он System.Threading.dll

0
ответ дан 7 December 2019 в 01:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: