我已经为web.config创建了一个新的mvc webapp,其中包含以下转换:
Web.Debug.config
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<appSettings>
<add key="Debug" value="true" xdt:Transform="Insert"/>
</appSettings>
</configuration>
Web.Release.config
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<appSettings>
<add key="Release" value="true" xdt:Transform="Insert"/>
</appSettings>
</configuration>
然后我创建了一个发布配置文件并将其命名为Release,但我选择了Debug(OBS!important)构建配置。
(我知道。愚蠢的例子。在我的真实项目中,他们被称为Test and Test2。)
当我运行发布操作时,我在转换后的Web.config中获得以下内容:
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="Debug" value="true"/>
<add key="Release" value="true"/>
</appSettings>
两次转换均已完成!奇怪!如果我将发布配置文件的名称更改为Release2,我会得到正确的结果:
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="Debug" value="true"/>
</appSettings>
你怎么看?错误?
答案 0 :(得分:1)
遇到同样的问题,最后能够确定原因并解决它。
发生此问题是因为发布配置文件配置设置混乱。使用配置管理器设置配置文件时,应确保当前解决方案配置与将要使用的配置相匹配:Easiest way for configuration to track config Transformations
否则,请记住,在选择配置文件配置之前,将应用选定的配置转换。
因此,请确保没有为不同的配置文件分配两次配置。如果是这样,只需为“失败”配置文件添加一个配置即可解决此问题,并获得您在应用转换时的预期。