构建期间的Web.config转换

时间:2017-01-11 16:27:53

标签: .net visual-studio azure-devops azure-pipelines

我已经在Visual Studio Team Services上设置了我的构建,但看起来我的Web.Release.config的Web.config转换不起作用,我只收到标准的Web.config。我做错了什么或我错过了什么参数。

change

2 个答案:

答案 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