我可以为调试和发布配置指定不同的'.settings'吗?

时间:2010-05-03 15:41:57

标签: configuration visual-studio-2010 .net-2.0 appsettings

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

2 个答案:

答案 0 :(得分:1)

我为每种模式使用两个单独的配置文件。我将文件复制到POST-BUILD事件中的BIN文件夹中。

答案 1 :(得分:1)

Settings.Designer.cs文件不包含值,仅包含应用程序设置属性声明。值分别存储。应用程序设置值进入app.exe.config文件,用户范围设置值进入appdata文件夹,该文件夹具有由散列算法生成的名称。你只会遇到后者的问题。无论如何,将Release版本部署到计算机时,该文件将不存在。

如果您的意思是“我可以更改默认值”,那么答案是:当您使用设置设计器时。您必须将设置移动到单独的类中。使它看起来类似于:

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文件中使用的名称相匹配,并从“设置”页面中删除该设置。