C#Properties.Settings属性不';不要设定任何值

C#Properties.Settings属性不';不要设定任何值,c#,settings,application-settings,C#,Settings,Application Settings,我想更改“MyProject.Properties.Settings.Default.Property”中的值,但给出错误和此错误 严重性代码说明项目文件行抑制状态 错误CS0200属性或索引器“设置。无法分配版本” to--它是只读的 我怎样才能解决这个问题?或者我可以尝试不同的方法 2017年3月21日编辑-我用此方法解决了问题 Properties.Settings.Default["Version"] = File.GetLastWriteTime(mainDllPath).ToStri

我想更改“MyProject.Properties.Settings.Default.Property”中的值,但给出错误和此错误

严重性代码说明项目文件行抑制状态 错误CS0200属性或索引器“设置。无法分配版本” to--它是只读的

我怎样才能解决这个问题?或者我可以尝试不同的方法

2017年3月21日编辑-我用此方法解决了问题

Properties.Settings.Default["Version"] = File.GetLastWriteTime(mainDllPath).ToString("ddMMyyyyhhmmss");
Properties.Settings.Default.Save();

听起来您正试图在运行时从代码中编辑此只读属性。你根本无法做到这一点

要更改版本,您需要通过解决方案资源管理器访问项目属性,并在其中进行更改

在这种特殊情况下,版本号将添加到已编译可执行文件的元数据中,并且需要在没有代码实际运行的情况下对主机操作系统进行访问。因此,更改此OTF确实会适得其反。

来自:

应用程序范围内的设置是只读的,并且只能 在设计时更改,或在其间更改.config文件 应用程序会话。但是,用户范围内的设置可以是 在运行时编写,就像更改任何属性值一样。这个 新值在应用程序会话期间持续存在。你 可以在应用程序会话之间保留对设置的更改 通过调用Save方法

如何:使用C#在运行时写入和持久化用户设置:

访问该设置并为其分配一个新值,如本例所示:

Properties.Settings.Default.myColor = Color.AliceBlue;
如果要在应用程序之间保留对设置的更改 会话,调用Save方法,如本例所示:

Properties.Settings.Default.Save();
用户设置保存在用户文件夹子文件夹中的文件中 本地隐藏的应用程序数据文件夹


.

为什么要为应用程序配置设置重新分配值?通常这些设置是由应用程序的用户设置的,而不是程序本身。如果我的答案解决了您的问题,我希望您将其标记为已接受,如果没有,请让我知道,我会尝试进一步帮助。我不会更改您的方法,因为我在microsoft代码之前尝试过,但不允许在运行时更改。设置有两个不同的作用域:用户和应用程序。只有具有用户范围的设置在运行时才可编辑。要检查设置,请转到解决方案资源管理器>展开项目的属性节点>双击.settings文件。在那里,您可以使用用户范围创建自己的设置,并在运行时对其进行编辑(如果您有意的话)。