Преобразование XML-файлов * .application в DevOps Azure - PullRequest
0 голосов
/ 12 марта 2019

Я ищу способ заменить несколько атрибутов в сгенерированном XML-файле из

MsBuild /t:publish command

Я работаю над старым приложением Windows Forms.У нас будет несколько веток для разработки и тестирования.

Я хочу найти способ преобразования XML-файлов манифеста {app} .application во время сборки с помощью токена.

В частности -

  <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-файлы.Единственное другое решение, которое я могу подумать, это передать UpdateUrl во время выполнения команды MsBuild.Но это потребовало бы от меня выполнения команды N раз для каждой среды и генерирования N числа артефактов сборки.

Я бы предпочел собрать его один раз - вставить целевые токены развертывания и заменить токены действительными значениями во время конвейера выпуска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...