我正在构建一个C#.NET(VS2010)应用程序,但在64位Windows 7下保存设置(在32位Windows XP下工作正常)时遇到了一些问题.
我在解决方案中有一个Settings.settings,其中一个名为res112text的设置测试值,在用户范围设置为类型字符串,"内部"作为访问修饰符设置.
然后是save命令
Properties.Settings.Default.res112text = "10002b";
try
{
Properties.Settings.Default.Save();
}
catch (Exception e)
{
MessageBox.Show(e.GetType().ToString() + " for " + e.Message.ToString());
}
Run Code Online (Sandbox Code Playgroud)
当被捕时立即显示错误类型:
System.InvalidOperationException
Run Code Online (Sandbox Code Playgroud)
并且对于异常消息它说:
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()
Run Code Online (Sandbox Code Playgroud)
更新:启用IE的保护模式时似乎没有解决方法,除非所有用户手动关闭它.