1

我们有一个新的Windows 2012服务器,我一直在使用它作为我们的Jenkins构建服务器。我的应用程序已经在.NET框架4.5上成功建立,但是当我们升级到.NET 4.6时,构建已停止工作。升级到.NET Framework 4.6而不是基于Windows 2012 Jenkins服务器

向下看日志我看到这个错误:

RateCalculator.cs(49,13): error CS0012: The type 'System.Object' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.

我没有在我的应用程序一个Web.config,只有Application.config文件。我曾尝试添加此:

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <dependentAssembly> 
     <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" /> 
    </dependentAssembly> 
    </assemblyBinding> 
</runtime> 

但是它没有解决的错误。

我们已经通过检查Windows更新和注册表来检查.NET Framework 4.6是否正确安装。

在我的本地开发环境中,它可以正确编译运行在Windows 7上的Visual Studio 2015. Jenkins构建服务器在Windows 2012服务器上安装了Visual Studio 2012,这就是出现错误的地方。

+0

这是一个粗液,但为什么不能在构建服务器上安装VS 2015的免费版本? – Erwin

+0

您的构建服务器不知道4.6的bean,它没有安装目标包。对C#v6也一无所知。不更新您的构建服务器以及开发人员使用的VS版本当然是一个错误。 –

+0

是Hans,你是对的 - 构建服务器不知道4.6 – ShaunP

回答

1

所以我通过在Windows 2012服务器上安装.NET Framework 4.6 Targeting pack解决了这个问题。

如果您正在使用Visual Studio 2012并希望使用.NET 4.6,则需要在安装定位包之前下载并安装.NET Framework 4.6。

感谢Hans Passant和其他人协助我指点目标包。

我安装了它:https://www.microsoft.com/en-us/download/details.aspx?id=48136