2016-04-11 43 views
2

我已經找到了部分答案我在這個線程問題後:NET的DLL顯示框架4.0轉化爲4.5.2

Here on stackoverflow cannot change target framework...

在我的情況下,該框架已成功轉化爲4.5.2,並且使用異步和等待方法,我確信它是框架4.5的一部分,該方法由引用該庫的exe成功運行。所以我可以推測這個庫是真正使用框架4.5.2編譯的。

但是,當在任何其他項目中引用時,庫的屬性顯示它是在框架4.0下編譯的。當調試器加載程序集時,它會打印出它在框架4.0下編譯的... 那麼誰是對的?我的代碼執行框架4.5的方法或告訴庫的字符串是在框架4.0?

我檢查過我的能力中有什麼可能,如果在我的安裝中有任何.targets文件,並且是有兩個,在msbuild-targets臨時文件夾下,Microsoft.Common.targets和Microsoft.Csharp.targets ,但我無法理解這些文件是否強制編譯器使用框架4.0。 主要是因爲在這臺機器上我直接在visual studio中編譯。

我有幾個解決方案使用組件庫編譯4.5.2,正常工作。所以我真的不知道如何確定我的庫是在正確的框架下編譯的,並且庫在它的屬性和加載時顯示了正確的框架。

如果任何人有關於如何實現這一點的線索,請提前致謝 。

回答

4

如果你的項目屬性說你的目標是.NET 4.5.2,那麼它就是爲.NET 4.5.2及以上版本而開發的。

也許你對CLR和Framework版本感到困惑。 .NET 4.x(任何)使用CLR(即公共語言運行時間)4.0。

檢查.NET Framework Versions and Dependencies以獲得有關此主題的更多詳細信息。

+0

感謝您讓我放心,我期待在庫的屬性窗格中找到4.5.2版本的框架,並且我認爲這些文件是正確的,因爲使用異步等待的測試可以正常工作,但在向客戶發佈軟件之前我更喜歡確定。再次感謝您花時間回答。 –