gpt4 book ai didi

c# - ConfigurationManager Save() 想要创建一个 tmp 文件

转载 作者:太空狗 更新时间:2023-10-29 23:51:04 26 4
gpt4 key购买 nike

我在使用要写入 .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 文件。如何解决?

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

最佳答案

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

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

关于c# - ConfigurationManager Save() 想要创建一个 tmp 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24635071/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com