Mam następujący problem podczas próby użycia niestandardowej sekcji konfiguracji w pliku app.config. Używam sekcję zwyczaj config śledzić wybór folderów, które chcę wykonać kopię zapasową z mojego programu tak:Zapisywanie niestandardowej sekcji konfiguracji skutkuje System.UnauthorizedAccessException
<CustomConfigSection>
<BackupLocations>
<clear />
<add path="C:\Users\Marcel\Documents\" />
</BackupLocations>
</CustomConfigSection>
Teraz, kiedy tylko zapisać plik konfiguracyjny otrzymuję ten wyjątek:
System.Configuration.ConfigurationErrorsException: Wystąpił błąd Ładowanie pliku konfiguracyjnego: Dostęp do ścieżki C: \ Program Files (x86) \ Rozwiązania kopii zapasowych \ uqhuxi1j.tmp są zabronione. (C: Program Files \ (x86) \ Backup Solutions \ BS.exe.Config) ---> System.UnauthorizedAccessException
Kod używam jest:
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
CustomConfigSection section = (CustomConfigSection)config.GetSection("CustomConfigSection");
section.BackupLocations.Add(element);
section.SectionInformation.ForceSave = true;
config.Save(ConfigurationSaveMode.Full);
to działa grzywna po zalogowaniu się jako administrator i występuje tylko wtedy, gdy na komputerze jest skonfigurowanych wiele kont, więc oznacza to, że jest to problem z UAC/uprawnienia. Jako zwykły użytkownik nie mam odpowiednich uprawnień do zapisu dla tego folderu.
teraz na moje pytanie (-ów):
Jak to możliwe ustawienia użytkownika zostaną zapisane do AppData i sekcji config niestandardowej próbuje zapisać w ApplicationFolder/exe.config? W jaki sposób mogę zapisać sekcję niestandardową również w pliku konfiguracyjnym AppData?
Potrzebuję być w stanie zapisać moje dane dla każdego użytkownika, niezależnie od uprawnień. Czy mogę to osiągnąć za pomocą niestandardowej sekcji konfiguracji lub czy potrzebuję innego podejścia? Najlepiej chciałbym zapisać moją sekcję niestandardową również w pliku konfiguracyjnym AppData. Nie chcę używać sztuczek w moim Instalatorze, aby dostosować uprawnienia do mojego folderu aplikacji, aby umożliwić mu pisanie. Przede wszystkim nie chcę wymagać uprawnień administratora podczas uruchamiania mojego programu!
Dzięki za odpowiedzi, bardzo docenione.