【发布时间】:2012-01-13 12:16:50
【问题描述】:
我正在尝试在 Visual Studio 2010 中创建特定于环境的配置,并且除了 App.config 之外的任何内容都无法进行转换。这是我的场景示例:
- 在我的项目中添加了一个配置文件(例如 Configs\Log4Net.config)。该文件设置为“内容”和“始终复制”
<log4net> <root> <appender-ref ref="EventLogAppender" /> <level value="DEBUG" /> </root> <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender"> ... </appender> </log4net>
- 添加了转换配置文件(例如 Configs\Log4Net.Release.config)
<log4net xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> <root> <level value="WARN" xdt:Transform="SetAttributes" xdt:Locator="XPath(log4net/root/level[@value!='WARN'])" /> </root> </log4net>
- 修改了 VS 项目文件以包含以下目标
<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.Tasks.dll" /> <Target Name="AfterPublish" Condition="exists('Configs\Log4Net.$(Configuration).config')"> <TransformXml Source="Configs\Log4Net.config" Destination="$(OutputPath)\Configs\Log4Net.config" Transform="Configs\Log4Net.$(Configuration).config" /> </Target>
我对 App.config 遵循了类似的模式,并且效果很好,但是这个似乎不起作用。我的期望是,当我进行 Release 构建时,日志级别应设置为 WARN。
【问题讨论】:
标签: visual-studio-2010 configuration msbuild build-automation