У меня есть различные версии Платформы.NET (версии 1.1 до 4,0) установленный на удаленной машине рабочий Профессионал XP. Я установил Реактивное Расширение слишком в придачу.
У меня также есть приложение, которое работает над моей машиной, потому что она ссылается на Систему. Поточная обработка найдена здесь: C:\Program Files\Microsoft Reactive Extensions\redist\desktopV2\System.Threading.dll
У меня есть две версии DLL в GAC также.
Два вопроса:
i) Почему Visual Studio решала, что это - версия (экземпляр) к ссылке, когда я выбрал из списка вместо того, чтобы просмотреть к в файл?
ii) Почему делает Систему. Поточная обработка не существует на удаленной машине? (Я думал, что это была базовая часть Платформы),
Спасибо
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 вместе с вашей программой.
Чтобы напрямую ответить на вопросы:
Чтобы решить вашу проблему, либо укажите целевой .NET 4.0, либо включите Rx's System.Threading.dll вместе с вашей программой.
П.С. Я рекомендую обновиться до последней версии Rx. Папка desktopV2
не использовалась в последних нескольких выпусках. При обновлении сначала удалите старую версию - так она работает лучше.
i) В списке ссылок должны отображаться все версии зарегистрированных компонентов, вы либо выбрали именно эту версию, либо, если ее нет в списке, она должна быть незарегистрированной или удаленной.
ii) System.Threading существовал начиная с framework 1, и если его нет на машине, он должен быть незарегистрирован или удален.
Я не знаю Reactive Extensions, и после некоторого поиска я не могу найти много информации о том, удаляет ли он System.Threading.dll