VS2022中WPF/.NET Core应用设置设计器缺失Browse按钮的解决咨询
VS2022设置设计器Browse按钮缺失及自定义类型设置方案
官方结论
Visual Studio 2022社区版中,设置设计器「Type」列下拉框底部的「Browse」按钮已被移除,这属于官方的「By Design」(设计如此)决策。该功能仅在VS2019及更早版本中保留,目前官方未提供替代的可视化选择入口。
手动配置自定义类型设置的方法
直接修改自动生成的Settings.Designer.cs文件会被VS自动还原,正确的做法是修改Settings.settings的XML内容,步骤如下:
准备自定义类型
确保你的自定义类型(比如枚举UiTheme)是公共可访问的,枚举默认支持序列化,无需额外标记;如果是复杂类,需标记[Serializable]或实现数据契约序列化。编辑Settings.settings的XML内容
在解决方案资源管理器中找到Properties/Settings.settings文件,右键选择「打开方式」→「XML(文本)编辑器」,修改对应设置项的配置:<userSettings> <GameBoxer.WPF.Properties.Settings> <setting name="UiTheme" type="GameBoxer.WPF.UiTheme" serializeAs="String"> <value>Light</value> </setting> </GameBoxer.WPF.Properties.Settings> </userSettings>type属性填写自定义类型的完整命名空间+类型名serializeAs对于枚举选String即可,保存枚举名称字符串,读取时自动转换为枚举值;复杂类型可根据需求选Xml或Binary
保存并验证
保存XML文件后,VS会自动更新Settings.Designer.cs,生成强类型的属性:[global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Configuration.DefaultSettingValueAttribute("Light")] public global::GameBoxer.WPF.UiTheme UiTheme { get { return ((global::GameBoxer.WPF.UiTheme)(this["UiTheme"])); } set { this["UiTheme"] = value; } }
注意事项
- 绝对不要手动修改
Settings.Designer.cs,该文件由VS自动维护,所有手动修改都会被覆盖 - 自定义类型必须在当前项目或已引用的程序集中,确保VS能找到该类型
- 若使用复杂自定义类型,需确保类型支持对应的序列化方式,否则会出现配置读取失败的问题
内容的提问来源于stack exchange,提问作者stigzler
相关产品推荐
相关产品推荐

