标签: user.config

如何将user.config保存到AppData\Roaming文件夹而不是AppData\Local?

介绍性实例

这段代码

Properties.Settings.Default.MyUserSettingBlah = "some new value";
Properties.Settings.Default.Save();
Run Code Online (Sandbox Code Playgroud)

将user.config文件保存到

C:\Users\MyUserName\AppData\Local\My_Company_Name\MyApp_Url_vb2s5kwidefdmxstmabckatcyl5t0lxd\1.0.0.0\user.config
Run Code Online (Sandbox Code Playgroud)

如何将user.config保存到

  • C:\ Users\MyUserName\AppData\Roaming\...

代替

  • C:\ Users\MyUserName\AppData\Local\...?

c# roaming-profile user.config

19
推荐指数
2
解决办法
1万
查看次数

c#错误:无法识别配置部分userSettings - 停止程序读取user.config?

在我的c#表单应用程序(在VS2010中使用.NET 4.0创建)中,我使用应用程序设置来存储输出路径.

以前,此设置配置了用户范围,但我必须将其范围更改为应用程序.

执行此操作后,我现在在启动表单时收到无法识别的配置部分userSettings错误(请注意,在将设置的范围设置为user之前,程序已执行):

InnerException: System.Configuration.ConfigurationErrorsException
   Message=Unrecognized configuration section userSettings. (C:\Documents and Settings\Administrator\Local Settings\Application Data\CallCenterForm\CallCenterForm.vshost.exe_StrongName_bplf30wziudnpq0knzaacfuyomd5rv45\1.0.0.0\user.config line 3)
   Source=System.Configuration
   BareMessage=Unrecognized configuration section userSettings.
   Filename=C:\Documents and Settings\Administrator\Local Settings\Application Data\CallCenterForm\CallCenterForm.vshost.exe_StrongName_bplf30wziudnpq0knzaacfuyomd5rv45\1.0.0.0\user.config
Run Code Online (Sandbox Code Playgroud)

所以在做了一些浏览后,这似乎是由系统上仍然存在的旧user.config文件引起的,导致程序读取它并抛出错误(我不确定实际的底层问题是什么).我还可以确认,当我删除文件时,问题就消失了.

这让我想到了我的问题,是否有一种方法可以更改程序,以便它不会读取旧的user.config文件,因为手动删除它并不理想,因为该程序已在多个系统上生产.

抱歉,如果这已经被覆盖,但我找不到答案.

如果这对我的App.config文件的内容有帮助:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
      <section name="CallCenterForm.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    </sectionGroup>
  </configSections>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
  </startup>
  <applicationSettings>
    <CallCenterForm.Properties.Settings>
      <setting name="saved_output_dir" serializeAs="String">
        <value>c:\</value>
      </setting>
    </CallCenterForm.Properties.Settings>
  </applicationSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)

c# app-config user.config

17
推荐指数
3
解决办法
1万
查看次数

如何加密user.settings

我正在Windows 8.1上使用C#.NET4.0 VS2010开发Windows桌面应用程序.我使用.NET设置机制存储了一系列设置.它们具有用户范围,因此,在应用程序中设置时,它们将写入Users\username\AppData\Local\companyname\App.exe_URL_randomstuff\versionno\user.config.

这些设置包括我需要隐藏的一些用户注册信息.我的研究表明我应该能够使用RsaProtectedConfigurationProvider加密设置,但我发现的所有示例都与加密app.config而不是user.config有关(例如http://msdn.microsoft.com/en-us /library/system.configuration.rsaprotectedconfigurationprovider.aspx).

因此,我的问题是可以加密user.config,如果是这样,怎么办?我注意到当我实例化System.Configuration.Configuration对象时,我可以将ConfigurationUserLevel设置为PerUserRoamingAndLocal.当我通过调试器检查对象时,它似乎引用了正确的user.config文件,但是当我继续实例时,一个ConfigurationSection来保护它返回null.代码如下所示:

System.Configuration.Configuration config =
                    ConfigurationManager.OpenExeConfiguration(
                    ConfigurationUserLevel.PerUserRoamingAndLocal);

ConfigurationSection connStrings = config.AppSettings;

connStrings.SectionInformation.ProtectSection(provider);
Run Code Online (Sandbox Code Playgroud)

我认为config.AppSettings可能不正确,但我不知道该替换它.

任何建议都非常感谢.

.net c# encryption settings user.config

7
推荐指数
1
解决办法
4287
查看次数

如何在user.config路径中获取哈希值?

我已经安装了.NET应用程序.它的配置位置是

%AppData%\[CompanyName]\[ExeName]_Url_[hash]\[version]\user.config.

我需要[hash]从另一个应用程序中获取价值.

根据MSDN,user.config路径模板是

[c:\Documents and Settings]\[username]\[Local Settings]\Application Data\[companyname]\[appdomainname]_[eid]_[hash]\[version]

[hash]证据的SHA1哈希在哪里(在我的例子中是eid = Url).

我注意到以下事项:

  • [hash] 应用程序安装路径更改的更改.
  • [hash]总是32个字符长,因此它不是SHA1的十六进制表示,长度为40个字符.看起来[hash]=base32(sha1([install path]))

我尝试过不同的值 [install path]

c:\ Program Files ...
file:/// c:\ Program Files ....
file:/// c:\ Program%20Files ...,等

[hash]总是错的.

.net c# hash user.config

6
推荐指数
2
解决办法
1073
查看次数

c#单元测试:在单元测试中写入设置不会在user.config中保存值

我正在运行ac#unit test(VS 2008).在测试中我写了设置,这应该导致将数据保存到user.config.

Settings.Default.X = "History"; // X is string
Settings.Default.Save();
Run Code Online (Sandbox Code Playgroud)

但这根本不会创建文件(我在"C:\ Documents and Settings\HW\Local Settings\Application Data"下交叉检查).

如果我创建与控制台应用程序相同的东西,则持久化数据(相同代码)没有问题.

在UnitTest中我需要考虑做些什么吗?

.net c# unit-testing app-config user.config

4
推荐指数
1
解决办法
2077
查看次数

如何在 C++ cli 中使用 user.config

我厌倦了在托管 C++ 应用程序中搜索如何使用 user.config 而不是 app.config。我发现的所有内容都是关于 C# 的,我无法弄清楚如何转换为 C++(属性命名空间不存在)

任何人都可以让我了解这一点吗?我需要知道如何创建、读取和写入 user.config 文件。

谢谢

c++-cli user.config

1
推荐指数
1
解决办法
4225
查看次数