Замените GUID в web.config во время публикации

Я ищу способ иметь GUID в моем файле web.config, который преобразуется в новый GUID во время публикации.

Например:

<add key="someGuid" value="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" />

и когда вы публикуете приложение с помощью MSBuild или экрана публикации Visual Studio, полученный файл конфигурации после преобразования содержит совершенно новый GUID, например:

<add key="someGuid" value="ab15c61ba16d1651a6c89a621d64c4f8" />

По сути, мне нужен новый GUID каждый раз, когда я публикую приложение, но мне также нужна возможность заменить этот GUID по требованию без полной перекомпиляции.

Прежде чем я собрал что-то свое, используя заполнитель и заменив текст вручную, я хотел посмотреть, может ли помочь преобразование конфигурации или встроенная функция MSBuild.

1 ответ

Решение

В MSBuild вы можете создать новый GUID, как это

<PropertyGroup>
  <SomeGuid>$([System.Guid]::NewGuid())</SomeGuid>
</PropertyGroup>

И затем вы можете использовать задачу XmlPoke, чтобы произвести замену, используя только что созданное свойство $(SomeGuid).

Выдержки из книги MSBuild Trickery трюки № 9 и № 101

Другие вопросы по тегам