当我运行我的应用程序时,我得到了一个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);我也尝试在声明配置文件后设置它,但仍然没有任何运气。
如果在此异常之后尝试继续,则在尝试将变量设置为配置文件中的某个值时,将收到一个TypeInitalizationException。
发布于 2017-11-06 04:56:56
遇到了同样的问题。出于一些荒谬的原因,即使使用文件路径初始化ExeConfigurationFileMap也不会设置配置对象构造函数所需的属性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);发布于 2014-10-23 13:52:21
您未使用配置文件路径的值设置正确的属性。此外,在同一个类中还存在对另一个静态变量的静态变量依赖关系。这里可能有一个潜在的执行顺序问题(尽管我不确定),试试这个:
public static Configuration config = ConfigurationManager.OpenMappedExeConfiguration(new ExeConfigurationFileMap()
{
ExeConfigFilename = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\QuikSnap\\QuikSnap.config"
}, ConfigurationUserLevel.None);https://stackoverflow.com/questions/26519280
复制相似问题