我们有一个新的Windows 2012服务器,我一直使用它作为我们的Jenkins构建服务器 . 我的应用程序已经在.NET Framework 4.5上成功构建,但是当我们升级到.NET 4.6时,构建已停止工作 .
向下看日志我看到这个错误:
RateCalculator.cs(49,13):错误CS0012:类型'System.Object'在未引用的程序集中定义 . 您必须添加对程序集'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,这就是错误出现的地方 .
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