我正在准备一个全新的ASP。NET MVC 5.1解决方案。我添加了一堆NuGet包,并设置它与Zurb基金会等。

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

TeamCity在以下情况下构建失败:

系统类型。对象在未引用的程序集中定义。必须向程序集“System”添加引用。= 4.0.0.0运行时版本

我最初在编译Razor网页时为相同或类似的错误添加了修复,该修复在web.config中

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

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


当前回答

安装. net运行时以及目标版本的目标包。

开发者包只是把这两样东西捆绑在一起,但到目前为止似乎还没有4.6版本,所以你必须分别安装这两样东西。

下载地址:http://blogs.msdn.com/b/dotnet/p/dotnet_sdks.aspx#

其他回答

删除Nuget包管理器上的引用并重新添加它为我解决了这个问题。

安装https://www.microsoft.com/en-us/download/details.aspx?id=49978 Microsoft . net Framework 4.6.1 Developer Pack并在Web中添加这行代码。配置文件

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

向这个System.Runtime.dll程序集添加引用修复了这个问题:

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

尽管那个显式路径下的文件在构建服务器上不存在。

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

更新

是的,整个互联网上几乎没有关于表面装配的信息。

谷歌:

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

对我来说,我使用的是微软visual studio 2019和Windows server 2019。

这个网络。配置编译部分

<compilation debug="true" targetFramework="4.7.2">

在开发和编码过程中突然出现了这个错误

我尝试添加程序集和引用它没有解决这个问题 这个错误在关闭和打开visual studio和再次打开项目后解决。

唯一适合我的方法是将程序集添加到web.config

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