Как применить XML Преобразования файлов в приложении ClickOnce через Azure Конвейер выпуска DevOps?
Задача преобразования файлов должна хорошо работать в вашем сценарии если мы можем выполнить его предварительные условия:
1. Убедитесь, что файл преобразования (app.Release.config) и исходный файл ({nameOfApplication} .exe.config) находятся по одному пути.
2.Убедитесь, что ваш файл преобразования имеет правильный синтаксис xdt, образец здесь.
3. Выберите вместо old 1.0
. *1016* последнюю версию задачи преобразования файла 2.0-preview
. 1018 * 4.Попробуйте использовать действительное имя файла при установке Xml Transformation rules
. (Используйте {nameOfApplication}.exe.config
вместо *.exe.config
)
На мой взгляд, #1
и #3
выше всегда являются прямой причиной ошибки Unable to apply transformation for the given package
. Проверяйте их внимательно!
Некоторые подробности для приведенных выше четырех советов:
1.В файле проекта (xx.csproj) У меня есть этот контент, чтобы убедиться, что файл преобразования будет быть скопированы в выходную папку. Так что он будет в той же папке с исходным файлом xxx.exe.config
.
<Content Include="App.release.config" >
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
2.Мой тест App.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="IsPackage" value="false" />
</appSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7" />
</startup>
</configuration>
Мой тест App.release.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<appSettings>
<add xdt:Transform="Replace" xdt:Locator="Match(key)" key="IsPackage" value="true" />
</appSettings>
</configuration>
3.Используйте последнюю версию, которая устраняет некоторые проблемы:
4. В некоторых тестах действительное имя работает лучше, чем что-то вроде *.exe.config
, когда вы уже знаете имя приложения:
Надеюсь, что все выше помогает:)