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