使用user.config而不是app.config

有人能给我一个关于如何使用用户设置而不是应用程序设置的简单例子吗? 我需要具有用户特定的Microsoft Unity部分,但不会在应用程序启动时为用户创建配置。 另外,我不能使用Visual Studio gui来创建这些设置。 我需要在运行时修改一些映射。

这是我在User-Config中需要的(应该放在用户的应用数据中)

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <configSections>
        <section name="MyUnityContainer" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration" />
      </configSections>
      <connectionStrings>
        <add name="MyProgram.Properties.Settings.MyConnectionString" connectionString="aConnectionString" />
      </connectionStrings>
      <MyUnityContainer>
        <typeAliases>
          <!-- type aliases -->
        </typeAliases>
        <containers>
          <container>
            <types>
              <!-- types -->
            </types>
            <extensions>
              <add type="Microsoft.Practices.Unity.InterceptionExtension.Interception, Microsoft.Practices.Unity.Interception" />
            </extensions>
            <extensionConfig>
              <add name="interception" type="Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionConfigurationElement, Microsoft.Practices.Unity.Interception.Configuration"></add>
            </extensionConfig>
          </container>
        </containers>
      </MyUnityContainer>
   </configuration>

我需要在应用程序启动时加载它,但不会创建用户的配置文件! 如何让我的程序在启动过程中自动创建用户特定的配置,如果它不存在?


App.config存储在应用程序根目录中,而user.config存储在用户配置文件中。 User.config覆盖App.config设置


我认为user.config覆盖只适用于appSetting配置部分。

所以你会有:

<appSettings file="user.config">

我通过将整个配置复制到应用程序数据并通过路径映射从那里加载它来解决此问题。 这工作。

ExeConfigurationFileMap configFile = new ExeConfigurationFileMap();
configFile.ExeConfigFilename = exeFilePath; //somewhere in appdata in my case
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configFile,ConfigurationUserLevel.None);
链接地址: http://www.djcxy.com/p/68845.html

上一篇: Use user.config instead of app.config

下一篇: Is appname.exe.config required for user specific settings?