从Settings.settings获取值时“配置系统无法初始化”

时间:2011-04-06 18:30:51

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

对这个问题感到非常沮丧......: - (

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()或其他一些“额外”动作......这让我发疯:(

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我知道这已经晚了两年,但是嘿,这是针对谷歌的。

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

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

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();时,这种情况发生在我身上。只是在表单初始化时调用保存可能不会受到伤害。