相关疑难解决方法(0)

如何根据构建配置有条件地部署app.config?

我有三个自定义构建配置{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配置值在调试/发布之间不会更改.

如何使构建脚本尽可能保持通用,并仅使用三个应用程序配置?我不想硬编码太多的条件字符串.

.net deployment msbuild configuration

18
推荐指数
2
解决办法
3万
查看次数

当App构建为Release时,更改Log4Net根级别

我有一个项目,我正在使用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)

在调试中构建解决方案时,将根日志记录级别更改为调试.

这是可能的,我的想法是我想要的最佳实践类型解决方案,我将如何做到(或者你会如何做得更好)?

c# asp.net log4net

4
推荐指数
1
解决办法
1731
查看次数

标签 统计

.net ×1

asp.net ×1

c# ×1

configuration ×1

deployment ×1

log4net ×1

msbuild ×1