在Azure DevOps中进行配置转换

时间:2019-04-01 17:20:35

标签: msbuild visual-studio-2017 azure-devops

我想使用Visual Studio项目文件来转换xml文件。我正在关注这篇文章。 http://sedodream.com/2010/04/26/ConfigTransformationsOutsideOfWebAppBuilds.aspx。这在本地对我有效,但是在Azure DevOps上部署应用程序时会失败。它找不到Microsoft.Web.Publishing.Tasks.dll。如何设置仅转换配置文件的构建任务。

<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <UsingTask TaskName="TransformXml"
             AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v15.0\Web\Microsoft.Web.Publishing.Tasks.dll"/>
    <Target Name="Build">
        <TransformXml Source="Web.config"
                      Transform="Web.Release.config"
                      Destination="Web.Production.config" />
    </Target>
</Project>

2 个答案:

答案 0 :(得分:1)

原来是一个简单的修复。这是一个旧版本,因此托管代理。只需将其更改为Hosted VS2017代理即可。

答案 1 :(得分:0)

  

AssemblyFile =“ $(MSBuildExtensionsPath)\ Microsoft \ VisualStudio \ v10.0 \ Web \ Microsoft.Web.Publishing.Tasks.dll” />

我认为这就是问题发生的原因。对于vs2017代理,您需要将v10.0更改为v15.0,以便msbuild工具可以找到程序集。

此外,与vs2017一样,请确保在VSTS中设置正确的msbuild工具路径,例如this issue