C# 安装包:未能添加对';的引用;System.Runtime';

C# 安装包:未能添加对';的引用;System.Runtime';,c#,.net,gac,C#,.net,Gac,我正在尝试使用以下命令在我的项目中安装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(这是我的项目目标版本),但收到消

我正在尝试使用以下命令在我的项目中安装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\
中搜索
System.Runtime.dll
并没有找到任何精确的匹配项(尽管有一些
System.Runtime.ni.dll
,这(似乎表明)它们实际上是同一个程序集…)

我能做些什么

更新:显然我对GAC的位置感到困惑。启发了我,在
C:\Windows\Microsoft.NET\assembly
中搜索,我找到了
System.Runtime.dll
。为什么VisualStudio没有

请确保它位于全局程序集缓存中

这是一条毫无帮助的错误消息。它不仅不能描述真正的问题,而且会让你彻底误入歧途,无法找到解决办法。.NET Framework程序集的程序集引用必须决不能来自GAC。发生故障时,故障模式的类型可能会非常复杂。引用程序集必须来自C:\Program Files(x86)\Reference Assemblys目录

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

另一个是.NET Portable,profile 259。它允许您的项目以.NET4.5.x、Store、Phone80和Phone81为目标。钝性错误消息告诉您的是,它很难找到该配置文件。使用Windows资源管理器查看,配置文件存储在C:\Program Files(x86)\Reference Assembly\Microsoft\Framework.NETPortable\v4.5\profile\Profile259目录中。它具有所需的System.Runtime.dll引用程序集

好吧,当然是擅离职守了,我猜不出背后的原因


他们确实在.nuspec文件中犯了一些微妙的错误。请考虑AutoFac的更稳定的发布,您可能不想成为beta测试仪。不要以4.5.2为目标,这是没有意义的。它没有添加任何有趣的内容,强制用户更新其.NET安装也不是很合理。

我也遇到了同样的问题

在此处找到解决方案:

为了修复它,我将
添加到.csproj

项目的文件,重新生成并运行。

您的项目目标是什么?@DanielA.White:如问题所述:.NET Framework 4.5.2。您是否验证了项目属性?它引用的是框架的子集吗?
c:\windows\assembly
不再是GAC了。GAC位于
c:\windows\microsoft.net\assembly
中。前者用于早期的.Net版本中,这是一条非常混乱的错误消息,因为GAC在编译时不用于解析引用。Visual Studio应该在
C:\Program Files(x86)\Reference Assembly
下查找,但该位置不应被称为全局程序集缓存。就我的理解而言,这是一个非常有用的书写-谢谢!但是,我确实在您指定的目录中有一个
System.Runtime.dll
。可能有什么问题吗?我怎么知道?通过从头开始重新创建项目文件并从备份中复制代码文件,我成功地解决了眼前的问题。如果重新创建项目解决了问题,那么引用程序集就没有问题。很难猜出可能出了什么问题,我想你肯定会想在你的磁盘驱动器上运行一些完整性测试。我和另一个用户使用不同的软件包系列反复遇到这个问题。计时-通过手动添加引用、安装软件包,然后再次删除软件包来解决这个问题。基于project.json的包似乎存在工具问题。