Я создаю приложение на C # .NET (VS2010), но у меня возникли некоторые проблемы с сохранением настроек (которые прекрасно работают под 32-битной Windows XP) под 64-битной Windows 7.
У меня есть Settings.settings в решении, со значением теста настроек с именем res112text in, установленным как строка типа в пользовательской области, с 'Internal' в качестве настройки модификатора доступа.
Затем команда сохранения в
Properties.Settings.Default.res112text = "10002b";
try
{
Properties.Settings.Default.Save();
}
catch (Exception e)
{
MessageBox.Show(e.GetType().ToString() + " for " + e.Message.ToString());
}
при обнаружении мгновенно выводит тип ошибки:
System.InvalidOperationException
и для сообщения об исключении написано:
Method failed with unexpected error code 3
Я упаковываю файл .dll.config в установщик установки, и он прекрасно устанавливается в каталог Program Files.
Может кто-нибудь подсказать, что может пойти не так, пожалуйста?
Обновление: полная ошибка ..
Error System.InvalidOperationException: Method failed with unexpected error
code 3.
at System.Security.AccessControl.NativeObjectSecurity.CreateInternal(
ResourceType resourceType, Boolean isContainer, String name, SafeHandle
handle, AccessControlSections includeSections, Boolean createByName,
ExceptionFromErrorCode exceptionFromErrorCode, Object exceptionContext)
at System.Security.AccessControl.FileSecurity..ctor(String fileName,
AccessControlSections includeSections)
...
at System.Configuration.SettingsBase.Save()
at MyAddon.IEModule.ConfigSave()
Обновление: кажется, что нет обходного пути, когда включен защищенный режим IE, если только все пользователи не отключают его вручную.