Как открыть machine.config из .NET v2.0.50727

Приложение, которое я хочу читать настройки, записывает в раздел machine.config в C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG.

Но когда я использую следующий код:

Configuration myMC = WebConfigurationManager.OpenMachineConfiguration();
Console.WriteLine(myMC.FilePath.ToString());

Возвращаемый путь всегда - это .NET 4 machine.config:

c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Config\machine.config

Изменить: мое приложение использует MEF, поэтому для него требуется .NET 4, написание приложения из .NET 2 не является вариантом.


person i did not pay the royalties    schedule 29.04.2011    source источник
comment
Установлены ли свойства вашего проекта для использования инфраструктуры 2.0 или 4.0? Или вы пытаетесь открыть 2.0 MachineConfig из базы кода 4.0?   -  person JamesEggers    schedule 29.04.2011
comment
Я использую платформу 4.0, поэтому да, мне нужно открыть файл 2.0 machine.config из кода 4.0.   -  person i did not pay the royalties    schedule 29.04.2011


Ответы (2)


Вы можете открыть его как XML-файл или текстовый файл, см .: http://support.microsoft.com/kb/307548

Вы можете создать службу, работающую в .net 2.0, и вызывать эту службу из своего приложения .net 4.0.

Но зачем вам это делать?

person Shiraz Bhaiji    schedule 29.04.2011
comment
Machine.config содержит информацию об определенной пользователем архитектуре (о другом продукте), которая мне нужна. - person i did not pay the royalties; 29.04.2011
comment
Тогда самый простой способ - просто открыть файл с помощью xml-ридера. - person Shiraz Bhaiji; 29.04.2011

Оказывается, есть способ указать, какой файл machine.config открывать с помощью ConfigurationManager:

ConfigurationFileMap myCFM = new ConfigurationFileMap(fPath);
Configuration myMC = ConfigurationManager.OpenMappedMachineConfiguration(myCFM);
Console.WriteLine(myMC.FilePath.ToString());

где fPath - это путь к тому, что я хотел. Я получил это, покопавшись в реестре.

person i did not pay the royalties    schedule 02.05.2011