我使用VS 2012和Teamcity与Visual Studio Runner类型。 我的解决方案针对不同的环境进行了多次web.config转换。 我希望遵循持续交付,使用多个包构建解决方案,并使用工件在需要时将它们部署到相关环境而无需再次构建。 我没有直接使用MSBuild,我使用VS包配置文件(pubxml) 我想有这样的事情:
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <WebPublishMethod>Package</WebPublishMethod> <LastUsedPlatform>Any CPU</LastUsedPlatform> <SiteUrlToLaunchAfterPublish /> <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish> <ExcludeApp_Data>False</ExcludeApp_Data> <DesktopBuildPackageLocation /> <PackageAsSingleFile>true</PackageAsSingleFile> <DeployIisAppPath/> <PublishDatabaseSettings/> </PropertyGroup> <ItemGroup> <LastUsedBuildConfiguration Include="UAT" /> <LastUsedBuildConfiguration Include="APCI" /> </ItemGroup> </Project>
然后我希望结果是工件的obj中的两个文件夹,每个文件夹都有自己的转换web.config。 有什么帮助吗?
答案 0 :(得分:0)
在单个构建中创建多个转换配置的唯一方法是在构建过程中直接使用XDT引擎。现在已经available on NuGet了一段时间,所以不应该太麻烦。
话虽如此,我已经使用msdeploy / publish个人资料大约两年了,之后我又搬到了以下地方:
Package.pubxml
创建一个msdeploy包,并使用MSDeploy参数定义所有转换(这两个参数都比XDT更强大)PublishProfile.pubxml
文件(这样您就可以拥有Visual Studio体验),但在PublishProfile.parameters.xml
Web.Release.config
中执行任何“除调试之外的所有环境”转换,以避免过度复杂的部署参数.deploy.cmd
(或直接msdeploy.exe
此设置允许您继续使用Visual Studio进行发布(如果您愿意),但您也可以一直向下移动到msdeploy命令行,因为.parameters.xml
文件是使用msdeploy参数架构定义的。
Web部署参数有很多“浮动”文档但没有真正的“引用”主页。这是一些有用的链接: