提问者:小点点

生成错误:必须添加对系统的引用。运行时


我正在准备一个全新的ASP. NET MVC 5.1解决方案。我正在添加一堆Nuget包,并将其与Zurb Foundation等一起设置。

作为其中的一部分,我添加了对内部NuGet包的引用,该包是一个可移植类库,我认为这在构建服务器上造成了问题。

TeamCity因以下原因导致构建失败:

类型'System.对象'在未引用的程序集中定义。您必须添加对程序集System的引用。运行时,版本=4.0.0.0

我最初在编译Razor web页面时添加了相同或类似错误的修复,该修复位于web中。配置

<compilation ... >
  <assemblies>
    <add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  </assemblies>
</compilation>

然而,这个问题尚未解决。


共3个答案

匿名用户

要实现修复,首先扩展现有的web。默认情况下如下所示的配置编译部分:

<compilation debug="true" targetFramework="4.5"/>

展开后,我按照指示添加了以下新的配置XML:

  <assemblies>     
    <add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />   
  </assemblies>

最终的web.config标签应该是这样的:

<compilation debug="true" targetFramework="4.5">
  <assemblies>     
    <add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />   
  </assemblies>
</compilation>

匿名用户

添加对此系统的引用。运行时。dll程序集修复了以下问题:

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\Facades\System.Runtime.dll

尽管该显式路径中的文件在生成服务器上不存在。

一旦我找到了一些关于PCL和这些外观的文档,我会发回更多的信息。

使现代化

是的,在整个互联网上几乎什么都没有。

谷歌:

(Facades OR Facade) Portable Library site:microsoft.com

匿名用户

唯一对我有效的方法是——将程序集添加到web.config

<compilation debug="true" targetFramework="4.5">
  <assemblies>     
    <add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />   
  </assemblies>
</compilation>