代码之家  ›  专栏  ›  技术社区  ›  Mark Carpenter

是否可以为调试和发布配置指定不同的“.settings”?

  •  1
  • Mark Carpenter  · 技术社区  · 15 年前

    我有一个.settings文件(包含用户和应用程序设置),如果在调试模式下内置,我希望包含不同的值。是否有支持或推荐的方法来执行此操作?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Raj More    15 年前

    我为每个模式使用两个单独的配置文件。我在后期生成事件中将文件复制到bin文件夹中。

        2
  •  1
  •   Hans Passant    15 年前

    settings.designer.cs文件不包含值,只包含应用程序设置属性声明。这些值单独存储。应用程序设置值进入app.exe.config文件,用户范围的设置值进入由哈希算法生成名称的appdata文件夹。你只会遇到后者的麻烦。不要紧,当您将发布版本部署到计算机时,该文件将不存在。

    如果你的意思是“我能改变 违约 值”,那么答案是:使用设置设计器时不是。您必须将设置移动到单独的类中。让它看起来像这样:

    using System;
    using System.Configuration;
    using System.Diagnostics;
    
    namespace ConsoleApplication1.Properties {
        internal partial class Settings {
            [UserScopedSetting, DebuggerNonUserCode]
    #if DEBUG
            [DefaultSettingValue("debug value")]
    #else
            [DefaultSettingValue("release value")]
    #endif
            public string Setting {
                get {
                    return ((string)(this["Setting"]));
                }
                set {
                    this["Setting"] = value;
                }
            }
    
        }
    }
    

    确保命名空间名称与settings.designer.cs文件中使用的名称匹配,并确保从设置页中删除该设置。