如何为mvc3应用程序立即合并所有web.configs

时间:2011-09-28 22:02:39

标签: visual-studio-2010 asp.net-mvc-3 msbuild web-config cruisecontrol.net

我有一个mvc3应用程序有几个配置(debug,ci,qa,client-dev,client-qa,release)。我已经在visual studio中很好地合并了web.configs,无论在ide中当前选择了什么配置。

所以我在我的项目中得到了这个。

web.config   
 -web.ci.config  
 -web.qa.config  
 - etc..  

我在巡航控制中也得到了正确的配置。不幸的是,我必须构建整个产品来获得每个配置。

以下是我的巡航控制配置在单个环境中的样子。

        <msbuild> 
            <executable>C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</executable>
            <workingDirectory>C:\Projects\Source\foo.SwsFall2011</workingDirectory>
            <projectFile>msbuild.xml</projectFile>
            <buildArgs>/noconsolelogger /p:Configuration=Dev;DeployOnBuild=true;DeployTarget=Package;PackageAsSingleFile=false /v:d "/l:ThoughtWorks.CruiseControl.MsBuild.XmlLogger,C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll;C:\Projects\Artifacts\foo.SwsFall2011\msbuild-results.xml" </buildArgs>
            <targets>BuildCI;ConfigMerge</targets>
            <timeout>600</timeout>
        </msbuild>

有没有办法将web.configs合并到一组配置目录中,其中一个任务不能完成整个构建?类似的东西:

configs  
 \dev\web.config  
 \qa\web.config  
 \client-dev\web.config  

1 个答案:

答案 0 :(得分:2)

根据visual studio内置的功能,各种Web配置仅在发布时合并。我们有一个构建后的任务,可以在构建时合并它们。根据需要自定义。虽然实现选择很薄 - 所以不要拍摄信使 - 这只是一种方式。可能还有其他人,但我所知道的“内置”

Visual studio 2010 - Per Developer/machine/environment Web.Config settings