在Azure DevOps上转换* .application XML文件

时间:2019-03-12 20:49:53

标签: azure-devops transform

我正在寻找一种方法来替换

生成的XML文件中的一些属性
MsBuild /t:publish command

我正在使用旧的Windows窗体应用程序。我们将有多个功能分支,用于开发和测试。

我想找到一种在构建时使用令牌转换{app} .application清单xml文件的方法。

特别是-

  <deployment install="true" mapFileExtensions="true">
<subscription>
  <update>
    <beforeApplicationStartup />
  </update>
</subscription>
<deploymentProvider codebase="__APP_UPDATE_LOCATION__" />

此文件是使用MsBuild命令上的发布标志生成的。

我尝试添加

{app}.Release.application file in source with the following transforms:

<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" 
            manifestVersion="1.0" 
            xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" 
            xmlns="urn:schemas-microsoft-com:asm.v2" 
            xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" 
            xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" 
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
            xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" 
            xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" 
            xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" 
            xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2"
            xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">

  <deployment>
    <deploymentProvider codebase="__APP_UPDATE_LOCATION__" xdt:Transform="Replace" xdt:Locator="Match(codebase)" />
 </deployment>
 </asmv1:assembly>

构建配置被设置为Release(我通过转换的app.config确认了这一点-令牌在那里工作)。

当我在构建中运行文件转换任务时-最终出现错误:

##[warning]Unable to apply transformation for the given package.

任何有关如何标记这些XML文件的想法将不胜感激。我能想到的唯一其他解决方案是在MsBuild命令运行时传递UpdateUrl。但这需要我为每个环境运行N次命令,并生成N个构建工件。

我希望一次构建一次-插入部署目标令牌,并在发布管道中将令牌替换为实际值。

0 个答案:

没有答案