我已经在Visual Studio Team Services上设置了我的构建,但看起来我的Web.Release.config的Web.config转换不起作用,我只收到标准的Web.config。我做错了什么或我错过了什么参数。
答案 0 :(得分:3)
为了实现转型,msbuild需要"部署"解决方案。我不确定最正确的方法,但一个简单的解决方法是添加
/p:DeployOnBuild=true /p:PublishProfile=SomeProfile
到MSBuild Arguments选项。然后,您可以从配置发布配置文件的任何位置获取文件以放置它们,并在部署期间使用这些文件。
这是一个非常简单的SomeProfile.pubxml
文件示例,它将发布的文件放在工件暂存目录中。
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is used by the publish/package process of your Web project. You can customize the behavior of this process
by editing this MSBuild file. In order to learn more about this please visit http://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>FileSystem</WebPublishMethod>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish />
<LaunchSiteAfterPublish>False</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<publishUrl>$(BUILD_ARTIFACTSTAGINGDIRECTORY)\Release</publishUrl>
<DeleteExistingFiles>False</DeleteExistingFiles>
</PropertyGroup>
</Project>
在TFS中使用MSBuild命令args
/p:DeployOnBuild=true /p:PublishProfile=SomeProfile
删除/p:outDir
。
答案 1 :(得分:0)
配置文件希望在构建服务器上为我工作。我发现这个解决方案适合我。
/p:outdir=$(build.artifactstagingdirectory)\Release /p:UseWPP_CopyWebApplication=true /p:PipelineDependsOnBuild=false
这部分有所不同:
/p:UseWPP_CopyWebApplication=true