我正在尝试使用该命令在我的项目中安装Autofac nuget包
Install-Package -Prerelease Autofac
Run Code Online (Sandbox Code Playgroud)
但它失败了,错误
Install-Package : Failed to add reference to 'System.Runtime'. Please make sure that it is in the Global Assembly Cache.
Run Code Online (Sandbox Code Playgroud)
我已经尝试重新安装.NET Framework 4.5.2(这是我的项目所针对的版本),但得到消息"已经安装了.NET Framework 4.5.2".然而,搜索C:\Windows\assembly\对于System.Runtime.dll没有找到任何精确的匹配(虽然也有少数情况下System.Runtime.ni.dll它(似乎表明,),它们实际上是同一个组件......).
我该怎么办?

更新:显然我对GAC的位置感到困惑.艾米开悟了我,C:\Windows\Microsoft.NET\assembly而我却找到了System.Runtime.dll.为什么不用Visual Studio?
Rob*_*lob 27
我有同样的问题.
在这里找到解决方案:https://github.com/aspnet/WebHooks/issues/18
为了修复它,我添加
了项目<Reference Include="System.Runtime"/>的.csproj
文件,重建它并且它工作.
Han*_*ant 18
请确保它在全局程序集缓存中.
这是一个非常无益的错误消息.它不仅没有描述真正的问题,而且还会让您在找到解决方法时误入歧途..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安装是不太合理的.