VS 2017 Release Management Tokenize XPath / Регулярные выражения не работают - PullRequest
0 голосов
/ 27 марта 2019

Я пытаюсь использовать токен управления выпуском XPath / Regular, и я продолжаю получать разные ошибки при попытке ответить на три записи

  1. Имя исходного файла: $ (System.DefaultWorkingDirectory) / XXXXX / Drop - это, я знаю, на моем сервере сборки этот файл должен быть xxxxxx.exe.config и находится в zip-файле

  2. Имя файла назначения: Я не знаю, должно ли это быть на сервере сборки или сервере выпуска?

  3. Конфигурация Имя файла Json: Не знаюдействительно знаю, где это разместить, код ниже - это файл Json.

    {"DEV": {

        "ConfigChanges": [{
            "KeyName": "/configuration/loggingConfiguration/listeners/add[@name='Email Trace Listener']",
            "Attribute": "emailListId",
            "value": 0
        },
        {
            "KeyName": "/configuration/loggingConfiguration/listeners/add[@name='Email Trace Listener']",
            "Attribute": "subjectLineStarter",
            "value": "[DEV]: Program Name"
        },
        {
            "KeyName": "/configuration/loggingConfiguration/listeners/add[@name='Email Trace Listener']",
            "Attribute": "smtpServer",
            "value": "testsmtp.dns.com"
        },
        {
            "KeyName": "/configuration/loggingConfiguration/listeners/add[@name='Email Trace Listener']",
            "Attribute": "toAddress",
            "value": "application.support.test@Yahoo.com"
        }]
    }
    

    }

Моя ошибка

2019-04-01T16:40:08.4509133Z ##[section]Starting: Tokenizer: Transform Source filename
2019-04-01T16:40:08.4663688Z ==============================================================================
2019-04-01T16:40:08.4663688Z Task         : Tokenize with XPath/Regular expressions
2019-04-01T16:40:08.4663688Z Description  : Replaces __<variable>__ and/or XPath for XML documents with User Defined variables or configuration json document
2019-04-01T16:40:08.4663688Z Version      : 2.1.0
2019-04-01T16:40:08.4663688Z Author       : ms-devlabs
2019-04-01T16:40:08.4663688Z Help         : [More Information](https://github.com/openalm/Extension-UtilitiesPack)
2019-04-01T16:40:08.4663688Z ==============================================================================
2019-04-01T16:40:10.6850718Z Environment: DEV
2019-04-01T16:40:10.8413250Z Updating emailListId of /configuration/loggingConfiguration/listeners/add[@name='Email Trace Listener']: 0
2019-04-01T16:40:10.9350669Z ##[error]Failure while updating emailListId of /configuration/loggingConfiguration/listeners/add[@name='Email Trace Listener']: 0
2019-04-01T16:40:10.9663179Z ##[section]Finishing: Tokenizer: Transform Source filename

в Моем файле .proj Я поместил это так, чтобы я мог получить файл App.Config.Token при выпуске вместо App.Config.

<ItemGroup>
    <None Include="App.config" />
    <None Include="App.Debug.config">
      <DependentUpon>App.config</DependentUpon>
    </None>
    <None Include="App.config.Token">
      <DependentUpon>App.config</DependentUpon>
    </None>
  </ItemGroup>

App.config и App.Debug.config идентичны.App.Config.Token

1 Ответ

0 голосов
/ 02 апреля 2019

Вот процесс токенизации, который мы используем в настоящее время (мы не архивируем результаты сборки, см. Предложения по расширениям ниже):

BUILD:

Замените App.Config на App.Config.Token, например, с командой copy в командной строке -task.

RELEASE

Для каждой среды / этапа:

  • Использовать расширение "Replace Tokens"для .config.Это считывает переменные, зависящие от среды, из определения выпуска и заменяет токены в .config (который был заменен на .config.token в сборке)
  • Выполните развертывание

Замена токеноввнутри архива требуется другое расширение, Tokenize в архиве может быть вариантом там.Мы используем инструменты Colin's Build and Release , которые имеют отличный токенизатор для json-файлов.Я предпочитаю токенизатор Колина, так как он довольно прост, и не нужно баловаться с XPATH и преобразованиями.Мы также используем Json to Variables для хранения переменных среды в VC вместо хранения их в определениях выпуска.Я подозреваю, что последний не будет работать в TFS 2017, но не пытался.

Что касается исходного вопроса, я подозреваю, что используемое расширение не может прочитать файл, который вы пытаетесьтокенизировать из архива.Сам не использовал это расширение, но я поместил JSON-файл в систему управления версиями, чтобы он оказался в артефакте сборки.Имя файла назначения подразумевает, что расширение может записать окончательный файл конфигурации, вероятно заменяя оригинальный файл app.config.

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