安装包:无法添加对’System.Runtime’的引用

我正在尝试使用该命令在我的项目中安装Autofac nuget包

Install-Package -Prerelease Autofac 

但它失败了,错误

 Install-Package : Failed to add reference to 'System.Runtime'. Please make sure that it is in the Global Assembly Cache. 

我已经尝试重新安装.NET Framework 4.5.2(这是我的项目所针对的版本),但得到消息“已经安装了.NET Framework 4.5.2”。 但是,搜索C:\Windows\assembly\ for System.Runtime.dll找不到任何完全匹配(虽然有一些System.Runtime.ni.dll实例,它们(似乎表明)它们确实是同样的集会……)。

我该怎么办?

项目配置

更新:显然我对GAC的位置感到困惑。 Amy启发了我,并在C:\Windows\Microsoft.NET\assembly搜索,而我找到了System.Runtime.dll 。 为什么不用Visual Studio?

我有同样的问题。

在这里找到解决方案: https : //github.com/aspnet/WebHooks/issues/18

为了解决这个问题,我在 .csproj中添加了
该项目的文件,重建它,它工作。

请确保它在全局程序集缓存中。

这是一个非常无益的错误消息。 它不仅没有描述真正的问题,而且还会让您在找到解决方法时误入歧途。 .NET Framework程序集的程序集引用绝不能来自GAC。 这种故障模式在诊断时可能非常讨厌 。 引用程序集必须来自C:\ Program Files(x86)\ Reference Assemblies目录。

查看您尝试安装的Autofac nuget包的.nuspec文件,它支持两个不同的目标。 一个是DNXCore版本4.0.10-beta-22816。 希望您没有使用它,该项目正在快速变化。

另一个是.NET Portable,配置文件259.它允许您的项目以.NET 4.5.x,Store,Phone80和Phone81为目标。 直言不讳的错误信息告诉你的是,它无法找到该配置文件。 使用Windows资源管理器查看,配置文件存储在C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETPortable \ v4.5 \ Profile \ Profile259目录中。 它具有所需的System.Runtime.dll 引用程序集

好吧,当然它很好,我无法猜测潜在的原因。

他们确实在.nuspec文件中犯了微妙的错误。 考虑一个更稳定的Autofac版本,你可能不想成为beta测试者。 并且不要以4.5.2为目标,没有任何意义。 它没有添加任何有趣的东西,并且强迫用户更新他的.NET安装是不太合理的。