У нас есть клиентское приложение WinForm, которое выполняет большую работу.Они запросили множество мелких обновлений приложения в дополнение к нескольким долгосрочным проектам.
Я перенес приложение в репозиторий GIT в DevOps и создал ветку Feature и ProdSupport вне основной ветки.
В каждой ветви будет среда разработки и тестирования, в которой я хочу развернуть.Я хочу, чтобы CI и CD были как минимум средой разработки.
Для настройки сборки я запускаю сборку в конфигурации выпуска.Это преобразует мой app.config, и я токенизировал определенные значения, чтобы они могли быть преобразованы во время развертывания во время выпуска.
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=__DB_SERVER__;Initial Catalog=__DATABASE__;Persist Security Info=True;User ID=__DB_USER__;Password=__DB_PASSWORD__"
providerName="System.Data.SqlClient" xdt:Transform="Replace" xdt:Locator="Match(name)" />
</connectionStrings>
В конфигурации выпуска - я использую задачу Tokenization: Transform file, чтобы заменить __TOKEN__
переменными среды.
Это прекрасно работает.Моя проблема связана со свойствами PublishURL, InstallURL, UpdateURL приложения winforms.
Я создаю приложение с использованием MSBuild и передаю флаг / target: publish для проекта.Я мог бы указать свойства publish, install, update url в качестве флага команды build, но это означало бы, что мне нужно создавать приложение для каждой среды.
Это не то, что я хочу сделать.Я хочу иметь возможность применять специфические параметры среды во время развертывания.
Кажется, я не могу найти, какой файл мне нужен для поиска, в каталоге app.publish, который создан для обновления свойств Install, Publish и Update url.
Его нет в app.config, и я не увидел ничего в генерируемых xml-файлах {app} .exe.manifest.