DevOps:构建解决方案任务不复制Web.config文件

时间:2019-01-31 21:46:56

标签: azure azure-devops web-config web.config-transform

在我们的DevOps构建管道中,“构建解决方案”任务将“ web.base.config”文件正确转换为“ web.config”文件,但是工件文件仅包含“ web.base.config”,而“ web.config”。

我们的Visual Studio项目文件/配置文件设置如下:

…
    <Content Include="Web.Base.config" />
    <None Include="Web.Debug.config">
      <DependentUpon>Web.Base.config</DependentUpon>
      <SubType>Designer</SubType>
    </None>
    <None Include="Web.Dev.config">
      <DependentUpon>Web.Base.config</DependentUpon>
      <SubType>Designer</SubType>
    </None>
    <None Include="Web.QA.config">
      <DependentUpon>Web.Base.config</DependentUpon>
      <SubType>Designer</SubType>
    </None>
…
  <Target Name="BeforeBuild" Condition="'$(PublishProfileName)' == '' And '$(WebPublishProfileFile)' == ''">
    <TransformXml Source="Web.Base.config" Transform="Web.$(Configuration).config" Destination="Web.config" />
  </Target>

“构建解决方案”任务的msbuild参数如下所示:

/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactstagingdirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"

在构建日志文件中,我可以看到转换成功进行。

2019-01-31T21:13:32.1186618Z BeforeBuild:
2019-01-31T21:13:32.1186784Z   Transforming Source File: Web.Base.config
2019-01-31T21:13:32.2198256Z     Applying Transform File: Web.Dev.config
2019-01-31T21:13:32.4750975Z     Output File: Web.config
2019-01-31T21:13:32.5213915Z   Transformation succeeded

我该怎么做才能将转换后的“ Web.config”文件保存到工件暂存文件夹中?

1 个答案:

答案 0 :(得分:2)

问题已解决-Web.config文件本身必须是CSPROJ文件的一部分,而实际上不是。将其添加到项目文件后,我看到它已发布/推送到网站。我将其添加到proj文件中,如下所示:

...
<Content Include="Web.config" />
<Content Include="Web.Base.config" />
<None Include="Web.Debug.config">
  <DependentUpon>Web.Base.config</DependentUpon>
  <SubType>Designer</SubType>
</None>
...