無法解析主要引用,因為它是針對比目前目標框架更高版本的 .NET 框架建構的
我正在嘗試建構一個引用第 3 方 SlingshotClient.dll 的項目。該項目在其他開發人員工作站上建構良好。但是,我收到以下錯誤。我可以想像的一個不同之處是導致我的問題是我的機器上還安裝了 VS 2012 和 .NET Frameworks 4.5。我相信其他可以成功建構的開發人員沒有安裝這些。
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”更高的版本。
錯誤似乎是說我們的項目針對的是框架版本 4.0(這是正確的),但引用的 SlingshotClient.dll 是針對框架版本 4.5 建構的。當我查看反彙程式序中的 SlingshotClient.dll 時,在我看來該程序集是針對框架版本 4.0 建構的
顯然,如果您只安裝了 .NET Frameworks 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 並抱怨。
