当前位置:  开发笔记 > 后端 > 正文

为什么Windows\Assembly中可能缺少System.Threading.dll?

如何解决《为什么Windows\Assembly中可能缺少System.Threading.dll?》经验,为你挑选了1个好方法。

我在运行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?(我认为这是框架的核心部分)

谢谢



1> Stephen Clea..:

System.Threading.dll是在.NET 4.0中添加的(虽然命名空间 System.Threading自v1以来一直存在).Rx包含一个版本的System.Threading.dll,它被反向移植到.NET 3.5 SP1.

听起来你的目标是.NET 3.5.在这种情况下,运行时将不会加载仅限4.0的System.Threading.dll(显然).除非您将System.Threading.dll的Rx版本与程序一起包含在内,否则您的加载将失败.

直接回答问题:

    Rx将自己的私有目录注册为框架扩展.这就是VS的发现方式.

    System.Threading.dll仅包含在.NET 4.0中,因此如果您要定位早期的框架,则无法找到它.

要解决您的问题,请让您的程序以.NET 4.0为目标,或者将Rx的System.Threading.dll与您的程序一起包含在内.

PS我建议升级到最新版本的Rx.该desktopV2文件夹尚未用于最近几个版本.升级时,首先卸载旧版本 - 这样做效果更好.

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有