我正在准备一个全新的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>

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


当前回答

我在VS 2015的一些解决方案中遇到了这个问题(虽然不是MVC),甚至在一个工作站上的同一个解决方案中也有这个问题,但在另一个工作站上却没有。在将. net版本更改为4.6并引用PCL后开始出现错误。

解决方案很简单:关闭解决方案,并删除解决方案所在文件夹中的隐藏.vs文件夹。

添加其他答案中所建议的缺失的引用也解决了这个问题,但即使在再次删除引用之后,错误仍然得到解决。

至于TeamCity,我不能说,因为我的配置从来没有问题。但是要确保将重置工作目录作为调试工作的一部分。

其他回答

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

<compilation debug="true" targetFramework="4.5">
  <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>

最终的网。配置标签应该是这样的:

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

安装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>

我需要下载并安装Windows 8.0(不是8.1)SDK来消除TeamCity服务器上的错误。

https://developer.microsoft.com/en-us/windows/downloads/windows-8-sdk

我在VS 2015的一些解决方案中遇到了这个问题(虽然不是MVC),甚至在一个工作站上的同一个解决方案中也有这个问题,但在另一个工作站上却没有。在将. net版本更改为4.6并引用PCL后开始出现错误。

解决方案很简单:关闭解决方案,并删除解决方案所在文件夹中的隐藏.vs文件夹。

添加其他答案中所建议的缺失的引用也解决了这个问题,但即使在再次删除引用之后,错误仍然得到解决。

至于TeamCity,我不能说,因为我的配置从来没有问题。但是要确保将重置工作目录作为调试工作的一部分。