首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ExeConfigurationFileMap: InvalidArgumentException,字符串参数'fileMap.ExeConfigFilename‘不能为null或空

ExeConfigurationFileMap: InvalidArgumentException,字符串参数'fileMap.ExeConfigFilename‘不能为null或空
EN

Stack Overflow用户
提问于 2014-10-23 08:16:05
回答 2查看 2.1K关注 0票数 2

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

代码语言:javascript
复制
    public static ExeConfigurationFileMap configFile = new ExeConfigurationFileMap(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\QuikSnap\\QuikSnap.config");
    public static Configuration config = ConfigurationManager.OpenMappedExeConfiguration(Settings.configFile, ConfigurationUserLevel.None);

我也尝试在声明配置文件后设置它,但仍然没有任何运气。

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

EN

回答 2

Stack Overflow用户

发布于 2017-11-06 04:56:56

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

代码语言:javascript
复制
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);
票数 3
EN

Stack Overflow用户

发布于 2014-10-23 13:52:21

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

代码语言:javascript
复制
public static Configuration config = ConfigurationManager.OpenMappedExeConfiguration(new ExeConfigurationFileMap()
{
    ExeConfigFilename = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\QuikSnap\\QuikSnap.config"
}, ConfigurationUserLevel.None);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26519280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档