У меня есть цель Msbuild, которая успешно выполняется при добавлении одного ключа с именем «ProjectID» в раздел appsetting файла web.config. Теперь я изменяю поведение этой цели, добавляя еще один ключ 'ApplicationId' в тот же раздел настроек приложения. Журнал показывает, что xmlpoke выполняется для обоих. Но только значение projectID корректно заменяется при каждом запуске.
(выдержка из) Определение PropertyGroup:
<?xml version="1.0" encoding="utf-8" ?>
<Project ToolsVersion="15.0" DefaultTargets="Build"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<!-- Needs to be set! -->
<ProjectID>4424cc12-4368-45ad-ad5b-19e821eb91d4</ProjectID>
</PropertyGroup>
TargetCode:
<Target Name="UpdateConfigFilesInSolutionDir">
<ItemGroup>
<WebConfigFilesSolutionDir Include="$(SolutionDir)\**\*.config" />
</ItemGroup>
<Message Text="WebConfigFilesPath: %(WebConfigFilesSolutionDir.FullPath)"
Importance="high"></Message>
<XmlPoke XmlInputPath="%(WebConfigFilesSolutionDir.FullPath)"
Query="//appSettings/add[@key='ProjectID']/@value" Value="$(ProjectID)"
/>
<XmlPoke XmlInputPath="%(WebConfigFilesSolutionDir.FullPath)"
Query="//appSettings/add[@key='ApplicationId']/@value" Value="SetAValue"
/>
</Target>
Выходной журнал наблюдений:
Использование задачи «XmlPoke» из сборки «Microsoft.Build.Tasks.Core, версия = 15.1.0.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a».
2019-06-25 08: 37: 13,202
[9] DEBUG EP.BuildService.Handlers.ProjectBuildLogger [2e0de09a-3fd8-4932-bc1d-e3a66dd3c1ca] - Задача «XmlPoke»
2019-06-25 08: 37: 13,203
[9] DEBUG EP.BuildService.Handlers.ProjectBuildLogger [2e0de09a-3fd8-4932-bc1d-e3a66dd3c1ca] - Заменил "значение" на "4424cc12-4368-45ad-ad5b-19e821eb91d9" *.
2019-06-25 08: 37: 13,203
[9] DEBUG EP.BuildService.Handlers.ProjectBuildLogger [2e0de09a-3fd8-4932-bc1d-e3a66dd3c1ca] - Сделано 1 замен (ы) .
2019-06-25 08: 37: 13,204
[9] DEBUG EP.BuildService.Handlers.ProjectBuildLogger [2e0de09a-3fd8-4932-bc1d-e3a66dd3c1ca] - Выполнено выполнение задачи «XmlPoke».
2019-06-25 08: 37: 13,204
[9] DEBUG EP.BuildService.Handlers.ProjectBuildLogger [2e0de09a-3fd8-4932-bc1d-e3a66dd3c1ca] - Задача «XmlPoke»
2019-06-25 08: 37: 13,204
[9] DEBUG EP.BuildService.Handlers.ProjectBuildLogger [2e0de09a-3fd8-4932-bc1d-e3a66dd3c1ca] - Сделано 0 замен (ы) .
2019-06-25 08: 37: 13,204
[9] DEBUG EP.BuildService.Handlers.ProjectBuildLogger [2e0de09a-3fd8-4932-bc1d-e3a66dd3c1ca] - Завершено выполнение задачи «XmlPoke» .
Что я пробовал до сих пор:
- Первоначально передавал значение ApplicationId в PropertyGroup. Это
не помогло.
- Так что жестко закодировать значение, как видно из кода,
Значение = "SetAValue" все еще не добавляет ключ к настройке приложения.