我在运行XP Professional的远程计算机上安装了各种版本的.NET Framework(版本1.1到4.0)。我已经安装了Reactive Extension以获得良好的衡量标准。
我还有一个可以在我的机器上运行的应用程序,因为它引用了System.Threading: C:\ Program Files \ Microsoft Reactive Extensions \ redist \ desktopV2 \ System.Threading.dll
我在GAC中也有两个版本的DLL。
两个问题:
i)当我从列表中选择而不是浏览到文件时,为什么Visual Studio决定这是引用的版本(实例)?
ii)为什么远程机器上不存在System.Threading? (我认为这是框架的核心部分)
由于
答案 0 :(得分:9)
在.NET 4.0中添加了System.Threading.dll(尽管名称空间 System.Threading
自v1以来一直存在)。 Rx包含一个版本的System.Threading.dll,它被反向移植到.NET 3.5 SP1。
听起来你的目标是.NET 3.5。在这种情况下,运行时将不会加载仅限4.0的System.Threading.dll(显然)。除非您将System.Threading.dll的Rx版本与程序一起包含在内,否则您的加载将失败。
直接回答问题:
要解决您的问题,请将您的程序定位到.NET 4.0或将Rx的System.Threading.dll与您的程序一起包含。
P.S。我建议升级到最新版本的Rx。 desktopV2
文件夹尚未用于最近几个版本。升级时,首先卸载旧版本 - 这样做效果更好。
答案 1 :(得分:0)
i)参考列表应显示已注册组件的所有版本,您选择该特定版本,或者如果它不在列表中,则必须已取消注册或删除。
ii)System.Threading存在since framework 1,如果它不在机器上,则必须已取消注册或删除。
我不知道Reactive Extensions,经过一些搜索我找不到太多信息是否删除了System.Threading.dll