【问题标题】:"Configuration system failed to initialize" when getting values from Settings.settings从 Settings.settings 获取值时“配置系统初始化失败”
【发布时间】:2011-07-31 02:03:28
【问题描述】:

对这个问题太沮丧了... :-(

Winforms,C# 2.0,VS 2010

在开发过程中,我只是尝试访问 Settings.setting 文件中的设置值。例如:

string foo = MyProject.Properties.Settings.Default.InstallerLogFile_Path

正如预期的那样,它有效。

但是在任何其他机器上部署我的 .exe 文件时,我收到了 Configuration system failed to initialize 异常。内部异常说:Could not find a part of the path C:\Documents and Settings\...\user.config。

在我的 Settings.settings 文件中,我有一些应用程序范围的字符串和一个用户范围的 WebService URL。我需要它作为用户范围,因为 URL 值可能会在运行时发生变化。

编辑:我刚刚创建了一个测试应用程序,它简单地引发一个带有一个应用程序范围的字符串值和一个用户范围的字符串值的 MessageBox。它无需保存设置Settings.Default.Save() 或其他一些“额外”操作即可工作......这让我发疯:(

任何帮助将不胜感激。

【问题讨论】:

  • 用户范围的设置在您部署应用程序后不会有任何价值。直到保存设置。确保在设置设计器中设置它们的默认值,确保在您的代码中只使用该默认值。
  • 谢谢汉斯。虽然我在检索应用程序范围设置时遇到了异常,但我尝试在应用程序开始时使用Settings.Default.Save() 保存设置...不走运:-( 抛出相同的异常。

标签: .net visual-studio-2010 c#-2.0 settings.settings user.config


【解决方案1】:

在您的另一台计算机上,如果您看到名为 YourApplicationName.vshost.exe 和 YourApplicationName.vshost.exe.config 的文件,请删除它们并查看错误是否仍然存在。

【讨论】:

  • 我什至没有这些文件。它们不存在。
【解决方案2】:

我知道这已经晚了两年,但嘿,这是给谷歌员工的。

当我在 C# 中使用资源文件和内置应用程序设置(针对 .NET 4.0 和 Windows 7 上的 Visual Studio 2010)更改命名空间后,我遇到了针对不同问题的相同错误文本。

基本上,命名空间被搞砸了,配置文件不匹配。我最终得到了相同的错误文本。

1) 确保在Resources.Designer.cs 中设置资源管理器的行是正确的。例如:global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("YOUR_NAMESPACE_NAME.Properties.Resources", typeof(Resources).Assembly); 我使用的命名空间被搞砸了。确保引号之间的文字准确无误。

2) 删除user.config 文件。它不一定位于您的项目中。我在C:/users/myusername/AppData/Local/CompanyName/Project_name_with_a_random_string/1.0.0.0/user.config找到了我的

这对我的问题很有用。对于您的,我建议您查看上面 2) 中指示的文件夹。如果那里没有user.config,则需要强制应用程序创建一个。当我打电话给Properties.Settings.Default.Save(); 时,这发生在我身上,只是在表单初始化上调用 save 可能不会有什么坏处。

【讨论】:

    猜你喜欢
    • 2010-11-21
    • 2011-09-20
    • 1970-01-01
    • 1970-01-01
    • 2012-04-23
    • 2014-09-28
    相关资源
    最近更新 更多