在 VS-2010 中创建特定于环境的配置文件
我尝试在 Visual Studio 2010 中创建特定于环境的配置,但无法对 App.config 以外的任何内容进行转换。这是我的场景的示例:
- 在我的项目中添加了一个配置文件(例如 Configs\Log4Net.config)。该文件设置为“内容”和“始终复制”
; <根> > <级别值=“调试”/> ; ...
- 添加了转换配置文件(例如 Configs\Log4Net.Release.config)
<根> >
- 修改 VS 项目文件以包含以下目标
<目标名称=“AfterPublish”条件=“exists('Configs\Log4Net.$(Configuration).config')”>
我对 App.config 遵循了类似的模式,效果很好,但这个似乎不起作用。我的期望是,当我执行 Release 构建时,日志级别应设置为 WARN。
I'm trying to create environment specific configurations in Visual Studio 2010 and can't get the transformations to occur for anything other then the App.config. Here is an example of my scenario:
- Added a configuration file in my project (e.g. Configs\Log4Net.config). The file is set to "Content" and "Copy Always"
<log4net> <root> <appender-ref ref="EventLogAppender" /> <level value="DEBUG" /> </root> <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender"> ... </appender> </log4net>
- Added a transformation configuration file (e.g. 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>
- Modified the VS Project file to include the following target
<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>
I've followed a similar pattern for the App.config and that works fine, but this one does not appear to work. My expectation is that when I do a Release build, the log level should be set to WARN.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我正在使用 XmlPreprocess 工具 进行配置文件操作。它针对多种环境使用一个映射文件。您可以通过Excel编辑映射文件。它非常容易使用。
尝试用 Exec 任务替换 TransformXml 任务并调用 XmlPreprocess 工具。
I'm using XmlPreprocess tool for config files manipulation. It is using one mapping file for multiple environments. You can edit mapping file by Excel. It is very easy to use.
Try to replace your TransformXml task with Exec task and call XmlPreprocess tool.