ExeConfigurationFileMap:InvalidArgumentException,字符串参数';f

本文关键字:参数 字符串 InvalidArgumentException ExeConfigurationFileMap | 更新日期: 2023-09-27 18:27:27

运行应用程序时收到InvalidArgumentException。我正在尝试创建一个新的ExeConfigurationFileMap,然后用ConfigurationManager加载它。

    public static ExeConfigurationFileMap configFile = new ExeConfigurationFileMap(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "''QuikSnap''QuikSnap.config");
    public static Configuration config = ConfigurationManager.OpenMappedExeConfiguration(Settings.configFile, ConfigurationUserLevel.None);

我也尝试过在声明配置文件后设置它,但仍然没有成功。

如果我尝试在此异常之后继续,那么在尝试将变量设置为配置文件中的某个值时,我会收到一个TypeInializationException。

ExeConfigurationFileMap:InvalidArgumentException,字符串参数';f

遇到了同样的问题。出于某种荒谬的原因,即使使用文件路径初始化ExeConfigurationFileMap,也不会设置Configuration对象构造函数所需的属性ExeConfigFilename。我通过在实例化ExeConfigurationFileMap对象后立即设置该属性来修复它,如下所示:

public static ExeConfigurationFileMap configFile = new ExeConfigurationFileMap(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "''QuikSnap''QuikSnap.config");
configFile.ExeConfigFilename = "QuikSnap.config";
public static Configuration config = ConfigurationManager.OpenMappedExeConfiguration(Settings.configFile, ConfigurationUserLevel.None);

您没有使用配置文件路径的值设置正确的属性。此外,您对同一类中的另一个静态变量具有静态变量依赖关系。这里可能存在执行顺序的潜在问题(尽管我不确定)试试这个:

public static Configuration config = ConfigurationManager.OpenMappedExeConfiguration(new ExeConfigurationFileMap()
{
    ExeConfigFilename = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "''QuikSnap''QuikSnap.config"
}, ConfigurationUserLevel.None);