【问题标题】:ConfigurationManager Save() wants to create a tmp-FileConfigurationManager Save() 想要创建一个 tmp-File
【发布时间】:2014-08-29 09:07:50
【问题描述】:

我在使用想要写入 .exe.config 的应用程序时遇到问题。

见以下代码:

using System;
using System.Configuration;
using System.IO;

namespace ConfigurationManagerError
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                // set Config-File to persistent folder
                ExeConfigurationFileMap exeMap = new ExeConfigurationFileMap();
                exeMap.ExeConfigFilename = Path.Combine(
                        Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData),
                        "ConfigError\\ConfigurationManagerError.exe.config");

                Configuration config = ConfigurationManager.OpenMappedExeConfiguration(exeMap, ConfigurationUserLevel.None);    

                config.AppSettings.Settings.Add(
                    new KeyValueConfigurationElement("TestKey", "TestValue"));

                config.Save(ConfigurationSaveMode.Modified);
                Console.WriteLine("Successfully write of Configuration-File to " + config.FilePath);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }

            Console.Read();
        }
    }
}

只要我以对文件夹具有读写访问权限的用户身份运行,一切正常。 如果我有一个在文件夹中没有写入权限的用户,则会出现一个异常,指出不允许写入 .exe.config 的权限。 到目前为止,一切都按预期进行。

但是,如果我现在有一个有权写入 现有 文件但无权创建新文件 的用户,则会引发类似

的异常
Access to the path 'C:\ProgramData\ConfigError\ila2ba_0.tmp' is denied

ConfigurationManager 似乎想要创建一个 tmp-File。 怎么解决?

非常感谢! 最好的祝福, 约尔格

【问题讨论】:

    标签: c# configurationmanager


    【解决方案1】:

    需要多次重写的用户特定配置设置应保存在用户的应用程序数据目录下。

    您可以将通用应用程序配置与您的应用程序一起安装,该配置可以与用户特定配置合并,并且可以根据您的要求覆盖所需的配置设置。

    【讨论】:

    • 如果我只有用户特定的设置,这很合适。就我而言,我有应该影响所有用户的设置。所以我必须将它们保存在一个公共文件夹中。并且(如上所述)该文件夹允许用户更改文件但不能创建新文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-19
    • 2019-09-20
    • 1970-01-01
    • 2010-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多