2012-05-16 5 views
1

У меня есть консольное приложение .NET 3.5 C#. Мне нужно прочитать App.Config. Когда я перехожу, чтобы установить ссылку на system.Configuration.dll, я увидел, что хотя мое приложение было скомпилировано как версия 3.5 Framework, в диалоговом окне Add Ref было показано только 2.0 версия dll.SystemConfiguration.dll. Является частью 2.0 или 3.5 Framework?

Так что я нашел DLL под:

C: \ Program Files \ Reference Сборки \ Microsoft \ Framework.NETFramework \ v3.5 \ Профиль \ Client

Я решил попробовать и установить ссылку непосредственно к этой 3.5 dll. После этого мой проект закончился версией 2.0.

Что происходит? Я думал, что если приложение было скомпилировано против определенной версии Framework, все DLL-файлы, которые были частью платформы, были все из одной и той же версии. Кажется, я смешиваю версии. Думаю, я не слишком удивлен, что могу одновременно обращаться к DLL-файлам из старых версий фреймворка, но если в папке 3.5 есть более новая версия, почему она не использует ее? или это действительно dll 2.0, помещенный в папку 3.5?

enter image description here

ответ

1

System.Configuration.dll от v2.0 Рамок. Файл в найденном вами местоположении по-прежнему совпадает с файлом .NET 2.0, но он просто находится в виде пакета компонента 3.5 Client Profile (с профилем клиента, который просто является сокращенной версией полного .NET).

Версия 3.5 .NET - это всего лишь набор расширений версии 2.0, поскольку он работает в среде CLR 2.0 и, таким образом, реализует версии DLL 2.0, 3.0 и 3.5 из платформы .NET. Классы в System.Configuration.dll были введены, и до сих пор все от версии 2.0 рамок, таким образом, сама DLL всегда будет 2.0.0.0

Для более подробно: http://en.wikipedia.org/wiki/.NET_Framework_3.5#.NET_Framework_3.5

+0

Какой самый предпочтительный метод для доступа к параметрам файла app.config с помощью .NET 4.0? – ChadD

+0

Я уверен, что это все еще через 'System.Configuration.ConfigurationManager.AppSettings' в System.Configuration.dll –

+0

Из [замечания здесь (MSDN)] (http://msdn.microsoft.com/en-us/ library/ms134260) кажется, что это все еще предпочтительный способ. –

1

.NET 3.5 основано на среде выполнения .NET 2.0, а это значит, что многие из сборок все еще являются 2.0.

Это нормально.

Смежные вопросы