无法加载文件或程序集'System.Net.Http, Version=4.0.0.0'。

4
我不知道我做了什么,但是我可能已经从 GAC 中删除了 System.Net.Http 4.0.0.0。 我有一个针对 WinRT 的 Windows Portable Library,曾经编译和工作正常,现在每次尝试运行它都会出现以下错误:

无法加载文件或程序集“System.Net.Http、Version=4.0.0.0、Culture=neutral、PublicKeyToken=b03f5f7f11d50a3a”中的文件之一或其依赖项。系统找不到指定的文件。":"System.Net.Http、Version=4.0.0.0、Culture=neutral、PublicKeyToken=b03f5f7f11d50a3a

如何重新添加 System.Net.Http 4.0.0.0?每次搜索 .dll 文件时,我都会发现 2.0.0.0 版本?

请问C:\Windows\Microsoft.NET\assembly\GAC_MSIL\System.Net.Http\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Net.Http.dll文件是否丢失? - David Kean
我已经完成了所有步骤,但是最后一个文件夹(倒数第二个命令)是v4.0_2.0.0.0_b03f5f7f11d50a3a,因此,在开头有一个2而不是4。 - joe_coolish
你使用的是哪个版本的Windows操作系统? - David Kean
Windows 8。我正在尝试构建一个WinRT应用程序。 - joe_coolish
1
为了修复问题,您需要运行系统还原将Windows二进制文件恢复到之前正常工作的版本。为了帮助我理解问题的原因,您最近卸载了可能导致此问题的任何内容吗? - David Kean
@DavidKean - 是的,成功了!我从 GAC 手动删除了 DLL 并找不到添加回去。如果您发布一个答案,我会点赞和接受它。谢谢您的帮助! - joe_coolish
4个回答

8

在 Windows 8 之前的版本中,要修复此问题,请转到“添加或删除程序”并执行 .NET Framework 4.5 的修复安装。

在 Windows 8 或更高版本中,你需要运行系统还原,将 Windows 二进制文件恢复到早期版本,以使其能够正常工作。


1
你尝试过从项目中删除,然后重新添加引用吗?

项目中唯一的引用是.NET Portable Subset,我无法删除它并重新添加。该包是动态创建的。 - joe_coolish

0

尝试文件夹:
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0
并使用来自文件夹的gacutil工具将dll复制到GAC中
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin


那是v4.0的dll。我需要添加v4.5的dll。可移植库适用于WinRT。 - joe_coolish
1
不要这样做。在“参考程序集”下的文件不是真正的程序集,不要将它们安装到全局程序集缓存中。 - David Kean

0

如果它曾经可以但现在不行了,很可能是您在项目中更改了某些内容。如果我理解正确,您正在创建一个可移植库(而不是Windows Store应用程序)。如果是这种情况,可能您更改了目标平台,打开项目的属性,在“库” ->“目标框架”中单击“更改”,如果您已选择所有内容或选择了.NET Framework 4.0.3,则不允许使用System.Net.Http,要解决此问题,您需要取消一些选择并启用.NET Framework 4.5,因为这是使用System.Net.Http的最低版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接