Nano Hash - криптовалюты, майнинг, программирование

TFS2013 Git многопроектная автоматическая сборка web.config transform не работает

Я не могу заставить MS Build выводить преобразованный Web.Config файл. Я настроил проект сборки с помощью восстановления пакета NuGet, как описано в NuGet docs. Все части сборки работают (восстановление пакетов, CI, пакеты веб-развертывания), за исключением преобразования. Я пробовал базовую настройку и пользовательский файл проекта, а также много других вариантов, и я никуда не попал.

Раньше я без проблем выполнял настройки преобразования конфигурации. У меня установлен Slow Cheetah, и я могу предварительно просмотреть свое текущее преобразование и убедиться, что оно работает. Когда я запускаю сборку локально через MSBuild.exe, на самом деле происходит преобразование:

    TransformWebConfigCore:
  Transforming Source File: G:\MyProject\Web.config
    Applying Transform File: G:\MyProject\Web.Debug.config
    Output File: obj\Debug\TransformWebConfig\transformed\Web.config
  Transformation succeeded

(Если я посмотрю на вывод -v, я могу увидеть отдельный запуск преобразования)

Затем Web Deploy параметризует мой web.config:

Transformed Web.config using G:\MyProject\Web.Debug.config into obj\Debug\TransformWebConfig\transformed\Web.config.
PipelineTransformPhase:
  Publish Pipeline Transform Phase
PreAutoParameterizationWebConfigConnectionStrings:
  Creating directory "G:\MyProject\obj\Debug\CSAutoParameterize\transformed\Views\".
  Copying obj\Debug\TransformWebConfig\transformed\Web.config to obj\Debug\CSAutoParameterize\original\Web.config.
AutoParameterizationWebConfigConnectionStringsCore:
  Transforming Source File: G:\MyProject\Views\Web.config
    Applying Transform File: <?xml version="1.0"?>
          <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
            <connectionStrings>
              <add
                connectionString="{% token='$(ReplacableToken_#(parameter)_#(tokennumber))' xpathlocator='name' parameter='$(name)-Web.config Connection String' description='$(name) Connection String used in web.config by the application to access the database.' defaultValue='$(connectionString)' tags='SqlConnectionString' %}"
                xdt:Transform="SetTokenizedAttributes(connectionString)" xdt:SupressWarnings="True" />
            </connectionStrings>
          </configuration>
    No element in the source document matches '/configuration/connectionStrings'
    Not executing SetTokenizedAttributes (transform line 6, 15)
    Output File: obj\Debug\CSAutoParameterize\transformed\Views\Web.config
  Transformation succeeded
PostAutoParameterizationWebConfigConnectionStrings:
  Auto ConnectionString Transformed obj\Debug\TransformWebConfig\transformed\Web.config into obj\Debug\CSAutoParameterize\transformed\Web.config.

Затем параметризованный файл перемещается в пакет, а преобразованный файл удаляется.

Копирование obj \ Debug \ CSAutoParameterize \ transformed \ Web.config в obj \ Debug \ Package \ PackageTmp \ Web.config. Удаление файла "obj \ Debug \ CSAutoParameterize \ transformed \ Web.config".

Итак, у меня есть преобразованный web.config файл, который не попадает в мои выходные данные сборки. Почему преобразование происходит, но не копируется в выходной каталог или пакет веб-развертывания?


Ответы:


1

У меня была такая же проблема. Это вызвано шаблоном веб-развертывания. Он использует "project name".SetParameters.xml в Web_Package для замены значений в Deploy.

Поскольку вы хотите использовать SlowCheetah, вам нужно обойти это.

Вы можете сделать это, заменив параметр строки подключения в файле web.config следующим образом:

    <connectionStrings configSource="connectionStrings.config">
    </connectionStrings>

Конечно, вам понадобится файл connectionStrings.config. Вы можете создать его вручную и поместить в раздел originasl connectionStrings. Узел должен быть единственным узлом в файле.

Теперь вы можете добавить SlowCheetah Transform в свой connectionStrings.config файл.

24.03.2015
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..