2009-08-03 14 views
5

Niedawno przeniosłem się do systemu Vista x64 i nagle mój blok aplikacji Machine.config appSettings nie jest odczytywany przez żadne zestawy .NET.appSettings nie jest czytane z pliku machine.config w systemie Vista

Zaraz po configSections, a przed configProtectedData w C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ config \ machine.config, mam:

<appSettings> 
    <add key="foo" value="blah"/> 
</appSettings> 
<system.runtime.remoting> 
    <customErrors mode="Off"/> 
</system.runtime.remoting> 

Gdyby zapisać go poprzez uruchomienie Notepad ++ jako administrator, ponieważ jest zablokowany w inny sposób, prawdopodobnie z ważnych powodów. Uruchomiony następujący kod w SnippetCompiler lub VS .NET 2008:

foreach(var s in ConfigurationManager.AppSettings.AllKeys) 
    { 
     Console.WriteLine(s); 
    } 

    AppSettingsReader asr = new AppSettingsReader(); 

    Console.WriteLine(asr.GetValue("foo", typeof(string))); 

pisze się bez kluczy i kończy się niepowodzeniem z następującym wyjątkiem:

--- 
The following error occurred while executing the snippet: 
System.InvalidOperationException: The key 'foo' does not exist in the appSettings configuration section. 
    at System.Configuration.AppSettingsReader.GetValue(String key, Type type) 
    at MyClass.RunSnippet() 
    at MyClass.Main() 
--- 

Aplikacja piszę używa machine.config jako awaryjne dla znalezienia które środowisko powinno być uruchomione przez użytkownika, jeśli nie można go znaleźć w pliku app.config, więc chciałbym uniknąć przepisywania mojej aplikacji, aby znaleźć coś, co powinno działać tak samo, jak w 2000 r. i XP.

Odpowiedz

7

rozwiązać go z poniższej linii kodu:

ConfigurationManager.OpenMachineConfiguration().FilePath 

który powrócił:

C:\Windows\Microsoft.NET\Framework64\v2.0.50727\Config\machine.config 

zamiast:

C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config 

Zapomniałeś używam teraz 64 bity. Dodanie sekcji appSettings w poprawnym pliku konfiguracyjnym rozwiązało problem.

Powiązane problemy