2013-08-21 386 views
15

我試圖構建引用第三方SlingshotClient.dll的項目。該項目可以在其他開發人員工作站上良好地工作。但是,我收到下面的錯誤。我可以想象的一個區別是造成我的問題是我的機器上還安裝了VS 2012和.NET Frameworks 4.5。我相信其他可以成功構建這個功能的開發人員並沒有安裝這些功能。主要參考無法解決,因爲它是針對比當前目標框架更高版本的.NET框架構建的

C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets(1578.5):警告MSB3274:主要參考「SlingshotClient,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = bb5a8745472e181a,processorArchitecture = MSIL「無法解析,因爲它是針對」.NETFramework,Version = v4.5「框架構建的。這是比當前目標框架「.NETFramework,Version = v4.0」更高的版本 n。

該錯誤似乎是說我們的項目的目標是框架版本4.0(這是正確的),但引用的SlingshotClient.dll是針對框架版本4.5構建的。當我在僞君子看SlingshotClient.dll,在我看來,大會始建目標框架4.0版

h

+3

您需要向下滾動並查看TargetFrameworkAttribute –

+0

@HansPassant您是正確的。 TargetFramework稍微向下一點,並說4.5。我讀過的另一篇文章說我需要檢查引用的mscorlib的版本。這解釋了它,但是,我仍然感到驚訝,它沒有抱怨只有.NET Framework 4.0的機器才編譯。 如果你想發表你的評論作爲這個問題的答案,我會讓你相信正確的答案。 – Dude0001

回答

16

顯然,如果你只有.NET框架4.0安裝後,可以添加爲將以4.5爲目標的.NET程序集引用到以.NET 4.0爲目標的項目。這將編譯和運行沒有錯誤。

只要安裝.NET Frameworks 4.5,編譯就會失敗。解決方案是將您的項目定位到.NET Framework 4.5或獲取以.NET 4.0爲目標的引用程序集版本。

.NET 4.5是替代4.0的下降。 4.0對4.5沒有任何瞭解,我認爲它只是查看版本號的第一個數字,對於4.0或4.5是相同的,因此它可以編譯。只要你安裝4.5,你的4.0項目使用4.5框架編譯,它現在知道約4.5,並抱怨。

相關問題