2012-05-16 27 views
1

我有一個.NET 3.5 C#控制檯應用程序。我需要閱讀App.Config。當我去設置對system.Configuration.dll的引用時,我發現即使我的應用程序被編譯爲Framework的3.5版本,Add Ref對話框也只顯示了dll的2.0版本。SystemConfiguration.dll。是2.0還是3.5框架的一部分?

所以我找到了DLL下:

C:\ Program Files文件\參考大會\微軟\ Framework.NETFramework \ v3.5版本\資料\客戶

我決定嘗試直接設置參考到這個3.5 dll。這樣做後,我的項目結束了2.0版本。

這是怎麼回事?我認爲如果一個應用程序是針對特定版本的框架編譯的,那麼所有屬於該框架的DLL都是來自同一版本。這似乎是我混合版本。我想我並不感到驚訝,我可以從舊版本的框架同時訪問DLL,但是如果3.5文件夾中有更新的版本,爲什麼它不使用它?或者這是真的2.0放在3.5文件夾中的DLL?

enter image description here

回答

1

System.Configuration.dll是從框架的V2.0。您找到的位置中的文件與.NET 2.0文件仍然相同,但它僅作爲3.5客戶端配置文件的打包組件(客戶端配置文件僅爲完整.NET的精簡版本)。

.NET的3.5版本只是2.0版本中的一組擴展,因爲它運行在2.0 CLR上,因此可以從.NET框架實現2.0,3.0和3.5版本的DLL。在System.Configuration.dll的類進行了介紹,並且仍然全部來自中,框架的2.0版本,因此DLL本身將始終是2.0.0.0

對於一些細節:http://en.wikipedia.org/wiki/.NET_Framework_3.5#.NET_Framework_3.5

+0

什麼是使用.NET 4.0訪問app.config文件params的最新首選方法? – ChadD

+0

我很確定它仍然通過System.Configuration.dll中的System.Configuration.ConfigurationManager.AppSettings' –

+0

從[remarks here(MSDN)](http://msdn.microsoft.com/zh-cn/庫/ ms134260)看來它仍然是首選的方式。 –

1

.NET 3.5基於.NET 2.0運行時,這意味着許多程序集仍然是2.0。

這是正常的。

相關問題