我正在准备一个全新的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>
然而,这个问题尚未解决。
要实现修复,首先扩展现有的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>