我正在使用Visual Studio 2013和Windows 7.当用户关闭表单时,我正在保存窗口位置,并且程序在异常中断,因为我没有以管理员权限运行它。
这是我的App.Config文件:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="Test.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
</sectionGroup>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6"/>
</startup>
<userSettings>
<Test.My.MySettings>
<setting name="InitialLocation" serializeAs="String">
<value/>
</setting>
<setting name="TelefonosConsultados" serializeAs="Xml">
<value>
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<string>0123456789</string>
</ArrayOfString>
</value>
</setting>
<setting name="Server" serializeAs="String">
<value>localhost</value>
</setting>
<setting name="Port" serializeAs="String">
<value>3306</value>
</setting>
<setting name="Database" serializeAs="String">
<value>dwh</value>
</setting>
<setting name="User" serializeAs="String">
<value>root</value>
</setting>
<setting name="Password" serializeAs="String">
<value>password</value>
</setting>
</Test.My.MySettings>
</userSettings>
</configuration>
答案 0 :(得分:0)
当您通过“项目属性”窗口将Settings
添加到项目时,有一个Scope
选项。如果您使用Application
范围而不是User
范围,则可以在该特定计算机上为该应用程序的所有用户保存该设置。只有管理员才能为所有用户指定设置,因此例外。 .Net会将该设置存储在只有管理员帐户可以访问的位置,因此需要提升才能完成保存(您的进程从未提示过)。
如果您改为选择User
范围,则您不会需要提升,设置将保存而不会抱怨。但是,只有该用户才能看到新设置。