我有三个自定义构建配置{Dev,Qs,Prd}.所以,我有三个app配置{Dev.config,Qs.config,Prd.config}.我知道如何根据当前的构建配置编辑.csproj文件以输出正确的文件.
<Target Name="AfterBuild">
<Delete Files="$(TargetDir)$(TargetFileName).config" />
<Copy SourceFiles="$(ProjectDir)$(Configuration).config" DestinationFiles="$(TargetDir)$(TargetFileName).config" />
</Target>
Run Code Online (Sandbox Code Playgroud)
我的问题是,我需要有六个构建配置{Dev,Qs,Prd} x {Debug,Release}.我需要支持每个环境的调试和发布设置(优化,pdb等).但是,app配置值在调试/发布之间不会更改.
如何使构建脚本尽可能保持通用,并仅使用三个应用程序配置?我不想硬编码太多的条件字符串.
我有一个项目,我正在使用log4net,它工作得很好,但我想知道我是否可以在调试和发布时覆盖日志记录的根"级别"属性的XML配置.
目前我的root配置如下:
<root>
<level value="WARN"/>
<appender-ref ref="LogFileAppender"/>
<appender-ref ref="DebugAppender"/>
</root>
Run Code Online (Sandbox Code Playgroud)
在我的Web应用程序Global.asax类中,我以为我可以用一些东西包装
protected override void Application_Start(object sender, EventArgs e) {
base.Application_Start(sender, e);
XmlConfigurator.Configure();
#if DEBUG
//Change logging level to DEBUG
#endif
}
Run Code Online (Sandbox Code Playgroud)
在调试中构建解决方案时,将根日志记录级别更改为调试.
这是可能的,我的想法是我想要的最佳实践类型解决方案,我将如何做到(或者你会如何做得更好)?